この小さな関数を使用して、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)そして私はpreg_replaceを使ってPHPで試しました-動作します。
なぜJSにいないのですか?