2016-05-06 13 views
0

今日は2016年5月7日土曜日 ですが、jsのプラクティスを実装すると、getDay()は常に正しい数字と1を返します。だから私はこのテストをしました。なぜjavascriptでgetDay()が+1を返しますか?

enter image description here

今日は土曜日なので、私は6

+1

に曜日はマニュアルを参照してください。 org/ja-ja/docs/Web/JavaScript /リファレンス/ Global_Objects/Date/getDay –

+2

ようこそ。 [ヘルプ]にアクセスし、[ツアー]を利用して何をどのように聞くかを確認してください。ヒント:最初にドキュメントを検索し、コード – mplungjan

+0

の画像の代わりに実際のコードを投稿してください。PS:date.getMonth()は0から始まる月を返します - Janは0です – mplungjan

答えて

1

getDayではなく、5を返すことを期待()メソッドは、ローカル時間に応じて指定した日付の曜日を返します。 0は日曜日を表します。

Source

日曜日は0であれば、あなたは他の日のために、これらの値を取得:

  1. を月曜日
  2. 火曜日
  3. 水曜日
  4. 木曜日
  5. 金曜日
  6. 土曜日
+1

ありがとうございます。私は中国にいた、月曜日は週の始まりですが、今私はオーストラリアにいる、日曜日は始めるべきです。私は今それを理解しています。 – Mangosteen

+0

私は最近、ウサギの穴に詰まっていましたが、プロジェクトで翻訳者と一緒に作業していました。私はhttps://blogs.msdn.microsoft.com/global_developer/2011/06/03/what-is-the-first-day-of-実際には/ –

+1

@ user3210050: 'getDay'は、あなたがどこにいても、日曜日に常に' 0'を返します。 –

0

曜日:

var d = new Date(2016, 5, 20); // June 20, 2016 
d.getDay(); 

0(日曜日)からのカウントを開始し、1は月曜日と等...

@マイクC意味:

  • 日曜日

  • 月曜日

  • 火曜日

  • 水曜日

  • 木曜日

  • 金曜日

  • 土曜日

あなたも月と同じ状況になります。 getMonth()によって返される値は、0〜11の整数です.0は1月、1〜2月などに対応します。

  • 1月

  • 2月

  • 4月

  • 6月

  • 7月

  • 8月

  • 9月

  • 10月

  • 11月

  • 12月

var d = new Date(2016, 5, 20); // June 20, 2016

d.getMonth(); // 5

なぜですか?

これは、@ChristopherWと仮定すると、名前の配列を参照するのに役立ちます。

var 
    months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], 
    days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']; 

var d = new Date(2016, 5, 20); // June 20, 2016 

months[d.getMonth()]; // "June" 
days[d.getDay()]; // "Monday" 

これは開発者にとって非常に便利です。しかし、ゼロインデックス付けのもう一つの理由があります。 JavaScriptの構文は実際にCから派生します。Cのlocaltime関数を解析できるようにします。

Cライブラリ関数の構造体tmが* LOCALTIME(CONSTのtime_t *タイマー)は、対応するローカル時刻を表す 値でtm構造体を充填するためにタイマによって指し示さ 時間を使用します。タイマーの値は、 構造体tmに壊れて、現地時間帯で表されます。

struct tm *localtime(const time_t *timer)

この関数内に充填された時刻 情報とtm構造体へのポインタを返します。tm構造体の情報がされて続いてます。https:://developer.mozilla

struct tm { 
    int tm_sec;   /* seconds, range 0 to 59   */ 
    int tm_min;   /* minutes, range 0 to 59   */ 
    int tm_hour;  /* hours, range 0 to 23    */ 
    int tm_mday;  /* day of the month, range 1 to 31 */ 
    int tm_mon;   /* month, range 0 to 11    */ 
    int tm_year;  /* The number of years since 1900 */ 
    int tm_wday;  /* day of the week, range 0 to 6 */ 
    int tm_yday;  /* day in the year, range 0 to 365 */ 
    int tm_isdst;  /* daylight saving time    */ 
}; 

あなたは月が0から11までを開始わかるように、0から6

+1

あなたの答えをありがとう、本当に明らかです。 – Mangosteen

+1

JavascriptはCよりもJavaに基づいています(C言語のような構文を持つ多くの言語があります)。そのDateオブジェクトはほぼJavaからのコピーです。 – RobG

関連する問題