1

ライブラリDate.jsおよび Date.parse() メソッドを使用しています

Date.parse('30/07/2012') を解析しているとき、正しい日付を取得しています Mon Jul 30 2012 00:00:00 GMT+0200 (CEST) しかし、Date.parse( を解析しようとすると'01/08/2012') (2 日後の日付) I'm got Sun Jan 08 2012 00:00:00 GMT+0100 (CET) 日と月が入れ替わっています!

それがなぜなのか誰か知っていますか?

問題は Date.js ではなく JS 自体にあると思います...

4

3 に答える 3

3

私の推測では、date.js はそれ30が有効な月ではないことを認識するのに十分スマートであるため、それ自体を dd/mm/yyyy 形式に切り替えます。

ただし、デフォルトの形式は mm/dd/yyyy で01、有効な月 (1 月) として認識されるため、8 月 1 日ではなく 1 月 8 日になります。

これを修正するには、使用しているフォーマット文字列を指定するだけです:

Date.parse('30/07/2012', 'MM/dd/yyyy');

http://code.google.com/p/datejs/wiki/APIDocumentation

于 2012-07-30T13:13:02.310 に答える
0

("dd/mm/yyyy") ではなく、("mm/dd/yyyy") の書式設定が間違っている可能性があります。

月に 30 を使用すると、ライブラリはそれを 1 日として解析しましたが、次の場合は言い訳がなく、1 日ではなく月として解析されます。

于 2012-07-30T13:13:18.923 に答える
0

ヒントをありがとう。

実際の解決策は、Date.parseExact()を使用して日付の入力を指定することです。この場合はDate.parseExact('01/08/2012', "d/M/yyyy")

于 2012-07-30T14:48:45.980 に答える