1

私はnode.jsで開発しており、サーバー上に日付オブジェクトを作成しようとしています。

コーディング時:

var birthyear = 2000;
var birthmonth = 7;
var birthday = 24;
var date = new Date(birthyear, birthmonth, birthday);
console.log(date);

出力:

Thu Aug 24 2000 00:00:00 GMT+0300 (Jerusalem Daylight Time)

ご覧のとおり、7 月ではなく 8 月を取得しています。

どうすればその問題を解決できますか?

4

4 に答える 4

6

The month argument in the Date()constructor doesn't start at 1 for January, but instead at 0. したがって、月の値 7 を指定すると、8 月である 8 月が得られます。

MDNから:

month: 1 月の 0 から 12 月の 11 までの月を表す整数値。

于 2013-11-03T07:49:36.730 に答える
1

JS0 の月数は から始まるので、簡単に修正できます。

var date = new Date(birthyear, birthmonth-1, birthday); 

デモ

于 2013-11-03T07:50:53.033 に答える
0

JavaScript のDate() コンストラクターの月は 0 から始まるインデックスが付けられます。つまり、その月7は実際には 8 月です。7 月の値6を使用します。

面倒なことに、Dateどのフィールドのインデックスが 0 で、どのフィールドが 1 であるかについてかなり一貫性がなく、実際には同じフィールドがコンテキストに応じてどちらかになる可能性があります。日付を使用する必要がある場合は、常にドキュメントを参照する必要があります。

于 2013-11-03T07:49:44.317 に答える
0

ええ、それは奇妙ですが、月は次から数えるべきです

0
于 2013-11-03T07:49:46.213 に答える