私のプロジェクトでdate.jsを使用していますが、正確に正午または真夜中の時間コンポーネントを持つ日付に関して、予期していなかったことに遭遇しています。
ネイティブの JavaScriptDate.parse
メソッドを使用すると、日付を解析するときに期待した結果が得られます。
// plain old javascript
var date = new Date(Date.parse("10/21/2010 12:00:00 PM"));
alert(date);
私はこれを得る:
2010 年 10 月 21 日木曜日 12:00:00 GMT-0500 (中央夏時間)
私はこれを 2010 年 10 月 21 日の正午と解釈します。これが私の入力日付だと思います。しかし、date.jsをインポートして似たようなことをしようとすると、
// using date.js
var date = Date.parseExact("10/21/2010 12:00:00 PM", "M/d/yyyy hh:mm:ss tt");
alert(date);
私はこれを得る:
2010 年 10 月 22 日金曜日 00:00:00 GMT-0500 (中央夏時間)
これは翌日の真夜中のように見えます。なぜこれを真夜中と解釈するのか、あるいはなぜこれDate.parse
を javascript のデフォルトとは異なる解釈にするのか、私にはわかりません。12:00 PM の意味について混乱していますか? date.js の parseExact を誤用していませんか?