2011-09-15 8 views
1

私のプロジェクトではdate.jsを使用しています。正午または正午の時刻コンポーネントを持つ日付に関しては期待していなかったことがあります。午前0時からdate.jsで真夜中まで混乱

私はネイティブのJavaScript Date.parseメソッドを使用すると、私は日付を解析するとき、私は期待した結果を得る:

// plain old javascript 
var date = new Date(Date.parse("10/21/2010 12:00:00 PM")); 
alert(date); 

私はこれを取得:

木2010年10月21日12時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(中部夏時間)

これは、次の日の真夜中のように見えます。私はそれが真夜中として解釈しているのはどういうわけか、それともJavaScriptでデフォルトのDate.parseと違って解釈しているのかは分かりません。私は午後12時の意味を混乱させていますか? date.jsのparseExactを誤って使用していますか?

+0

どのバージョンをお使いですか?それは私のために働く、両方の方法は同じ結果をもたらす... – davin

+0

@ダビン私は現在のhttp://datejs.googlecode.com/files/date.jsリンクを使用しています。現在のロケール設定と関係がありますか? –

+0

別の質問にも同じバグがあります。最新バージョンではこれが解決されていますが、最新のバージョンはdatejs.comのWebサイトには掲載されていません:http://stackoverflow.com/questions/6444775/datejs-problem-with-1200-pm – steampowered

答えて

1

はバージョンの問題のように見える:

http://jsfiddle.net/4QK8Q/
http://jsfiddle.net/JKg3n/

最初のものは、(Googleのコードベースから)あなたのファイルで、第二は、自分のウェブサイト(datejs.com)からです。面白いほど、彼らは同じバージョンのように見えるが、明らかにそうではない。私はライブラリーになじみがなく、何が起こっているのかを知ることはできませんが、バグレポートを提出することをお勧めします。

1

これはかなり古い質問ですが、検索でこれを見つけられない人は、予期しない動作が発生した場合は、現在更新されているDate.js(https://github.com/abritinthebay/datejs/)のバージョンに切り替えることを強くお勧めします。

Googleコードベースとdatejs.comの両方のバージョンには、元の開発者がプロ​​ジェクトを中止したように思われる未修正のバグがあります。

関連する問題