我想通过使用这个小功能来测试 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 中?