2021年4月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  
無料ブログはココログ

« SQL-Server2000 WeekDay | トップページ | SQL 月末日の日付取得 »

Javascript setMonthの変な仕様

下記のように2月1日を指定しようとすると1月1日になってしまいます。
IEでもNetscapeでも同じ現象が発生します。

<SCRIPT LANGUAGE="JAVAScript">
var D=new Date();
D.setMonth(2006);
D.setMonth(1);
D.setDate(1);
document.write(D);
</SCRIPT>

setMonthする前にsetDateしてあげると正しい日付がセットされるようです。

<SCRIPT LANGUAGE="JAVAScript">
var D=new Date();
D.setMonth(2006);
D.setDate(1);
D.setMonth(1);
document.write(D);
</SCRIPT>

var D=new Date()によりDにはシステム日付が格納されます。
仮にシステム日付が1月31日だったとすると、「月」に1「日」に30の値が入ります。
これに対しsetMonth(1)を行うと、Dの「月」に2が代入されますが、「日」を表す部分が30のままになります。
この場合、Dは2月30日から3月1日に自動的に修正されます。
その後のsetDate(1)により、Dは3月1日となってしまいます。

« SQL-Server2000 WeekDay | トップページ | SQL 月末日の日付取得 »

Javascript」カテゴリの記事

コメント

なるほど解決しました。助かりました。

3時間程この問題で悩みに悩んでいました。
本当に助かりました。有難うございます。

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: Javascript setMonthの変な仕様:

« SQL-Server2000 WeekDay | トップページ | SQL 月末日の日付取得 »