1

考虑这个日期字符串:

"2012-08-20T15:00:00-07:00"

它添加了时间偏移量,"-07:00" 我怎样才能知道它添加了这个偏移量?我知道我可以用正则表达式来做到这一点。但是还有其他更简单的方法吗?

或者有没有人有它的正则表达式?

4

2 回答 2

1

我知道我可以用正则表达式来做到这一点,但还有其他更简单的方法吗?

我不这么认为,正则表达式是可用的最简单的模式匹配器。

有没有人有它的正则表达式?

我认为应该这样做:

/[+-]\d\d:\d\d$/.test(datestring)

如果要解析它,请使用

var match = /([+-]?\d\d):(\d\d)$/.exec(datestring);
if (match)
    return parseInt(match[1], 10)*60 + parseInt(match[2], 10)*(match[1].charAt(0)=="-"?-1:1);
return 0;
于 2013-02-05T21:44:22.323 回答
-1

如果您的日期字符串始终具有相同的格式,您可以简单地使用它.length来检查是否添加了一些内容:

var your_string = "2012-08-20T15:00:00";
if(your_string.length > 19) {
    // offset added
    // offset = your_string.substring(19);
} else {
    // no offset added
}

无论如何,我建议使用(new Date).getTime()which 返回自 01.01.1970, 0:00:00h UTC 以来的毫秒数。这更容易计算...

于 2013-02-05T20:15:29.887 回答