0

この小さな関数を使用して、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にいないのですか?

4

1 に答える 1

2

以下を削除し'ます。

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