0

我想通过使用这个小功能来测试 ISO 时间戳是否有效:

function isValidDateTime = function (datetime) {
    return !isNaN(new Date(datetime).getTime());
}

像2012-12-31T12:00:00的魅力一样工作。

但是,某些字符串具有这样的偏移量,这不适用于 Javascript: 2012-12-31T12:00:00+01中的 Date() 。

因此我调整了我的功能:

function isValidDateTime(datetime) {
    // Javascript's date does not like offsets ...
    datetime = datetime.replace('/\+[0-2]{1}[0-9]{1}/', '');
    return !isNaN(new Date(datetime).getTime());
}

正则表达式是正确的(http://regexpal.com/?flags=g®ex=%5C%2B%5B0-2%5D%7B1%7D%5B0-9%5D%7B1%7D&input=2012-12-31T12%3A00 %3A00%2B01) 并且我已经在 PHP 中尝试使用 preg_replace - 有效。

为什么不在 JS 中?

4

1 回答 1

2

删除'

datetime = datetime.replace(/\+[0-2]{1}[0-9]{1}/, '');
于 2012-07-16T15:47:26.830 回答