日付の月に追加しようとすると、11 月がスキップされます。これは11月のサマータイムのせいだと思います。
これは、私が望むよりも1日早くジャンプしたことを示すコードです:
var my_date = new Date(1377993599000);
console.log(my_date.toUTCString());
これは、「Sat, 31 Aug 2013 23:59:59 GMT」を出力します
my_date.setUTCMonth(my_date.getUTCMonth() + 3);
console.log(my_date.toUTCString());
これは、「Sun, 01 Dec 2013 23:59:59 GMT」を出力します
そして今、2つだけ追加しようとすると:
my_date.setUTCMonth(my_date.getUTCMonth() + 2);
console.log(my_date.toUTCString());
これは、「Thu, 31 Oct 2013 23:59:59 GMT」を出力します
日付をゼロに設定しようとすると:
my_date.setUTCMonth(my_date.getUTCMonth() + 3, 0);
console.log(my_date.toUTCString());
これは、「Thu, 31 Oct 2013 23:59:59 GMT」を出力します
これを修正するためのきれいなトリックを知っている人はいますか?
UTC 関数を捨てて、タイムゾーン オフセットを常に削除した方がよいでしょうか? 私がこれをした場合、それは実際に私の問題を解決しますか?