在Javascript中验证日期时间字符串与时间偏移量

时间:2012-07-16 15:40:48

标签: javascript regex date

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

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

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

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

因此我调整了我的功能:

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&regex=%5C%2B%5B0-2%5D%7B1%7D%5B0-9%5D%7B1%7D&input= 2012-12-31T12%3A00%3A00%2B01)我在PHP中尝试过preg_replace - 的工作。

为什么不在JS?

1 个答案:

答案 0 :(得分:2)

删除'

datetime = datetime.replace(/\+[0-2]{1}[0-9]{1}/, '');