我想通过使用这个小函数来测试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®ex=%5C%2B%5B0-2%5D%7B1%7D%5B0-9%5D%7B1%7D&input= 2012-12-31T12%3A00%3A00%2B01)我在PHP中尝试过preg_replace - 的工作。
为什么不在JS?
答案 0 :(得分:2)
删除'
:
datetime = datetime.replace(/\+[0-2]{1}[0-9]{1}/, '');