私はその日付をISO文字列に変換すると、2015年11月30日を取得します。それはなぜ12月初めではないのですか?私はグーグルして、私はその月が0インデックスされ、オーバーフローが翌日/月/年につながることを知っています。しかし、私はその行動を自分自身で説明することはできません。私がgoogleすると、無関係なトピックが見つかります。12月1日の日付(2015,11,1)はなぜですか?
答えて
var date = new Date(Date.UTC(2015, 11, 1));
console.log(date.toISOString());
出力:あなたが入力した場合
2015-12-01T02:00:00.000Z
実際には、出力は '2015-11-30T23:00:00.000Z'ですあなたのセットアップで。異なるユーザータイムゾーンを検討しているわけではありません。 – h2ooooooo
さて、[Mozilla Docs](https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)によると、「タイムゾーンは常にゼロのUTCオフセットです」 – ceferrari
はいDateのMDN記事を見ると_passed_値は現地時間です。 – h2ooooooo
事は次のとおりです。
var date = new Date(2015, 11, 1);
console.log(date);
あなたは、あなたのタイムゾーンに基づいて出力を得るでしょう、私にとってそれはです:
Tue Dec 01 2015 00:00:00 GMT+0100 (Central Europe Standard Time)
機能toISOStringは常に時刻を出力します UTC。この場合、この日付から1時間を引いた値になります。
2015-11-30T23:00:00.000Z
あなたがチェックした場合MDN pageあなたはそれが表示されます:
注:日付が複数の引数を持つコンストラクタと呼ばれているは、specifed引数は現地時間を表します。 UTCが必要な場合は、新しい引数
Date(Date.UTC(...))
を使用してください。
ユーザーのローカルタイムゾーンが異なります。 私にとってnew Date(2015, 11, 1)
はTue Dec 01 2015 00:00:00 GMT+0100 (Romance Standard Time)
です(私はGMT + 1のタイムゾーン中央ヨーロッパ時間にいます)。
したがって、あなたは、MDNのヒントに従って、代わりにあなたの日付のコールの内側にDate.UTC
を使用することができます。コードを見ることなく
var date = new Date(2015, 11, 1);
console.log(date.toString());
// "Tue Dec 01 2015 00:00:00 GMT+0100 (Romance Standard Time)"
// 00:00:00 in GMT+1 but 23:00:00 in GMT+0
console.log(date.toISOString());
// "2015-11-30T23:00:00.000Z"
// ^^ 30th of november - that's a nogo!
var utcDate = new Date(Date.UTC(2015, 11, 1));
console.log(utcDate.toString());
// "Tue Dec 01 2015 01:00:00 GMT+0100 (Romance Standard Time) 15:49:26.146"
// 01:00:00 in GMT+1 but 00:00:00 in GMT+0
console.log(utcDate.toISOString());
// "2015-12-01T00:00:00.000Z"
// ^^ The first! Not the 30th!
- 1. Postgresql 1月と12月の日付で同じ週番号
- 2. SQL Serverで現在の月の数値を取得する(1月1日、12月12日)
- 3. Python形式の日付は「1991年1月1日月曜日」
- 4. 12月1日のように開始日を12月に入力すると、12月の計算で12月の終了日を見つける方法
- 5. 1月1日から先月の日付に変換する
- 6. Tableauの日付の表示前の月の表示12か月
- 7. 1月から12月にかけて日付をソートする(01年1月の形式)
- 8. Html5日付管理の問題:12月の特定の日付に3日を追加すると、jsで翌月1月が返されます
- 9. 12月31日のMoment.jsで今年のスタートはなぜですか?
- 10. 現在の日付の1ヶ月と現在の日付の+1月
- 11. JavaScriptの新しい日付()は1969年12月31日に返されます
- 12. 次の12か月間の日付形式クエリ
- 13. PHPは日付から1ヶ月を日付で区切ります( 'm-Y')
- 14. mySql:2000年1月1日から2000年1月1日に日付を変換
- 15. 12月1日よりPythonAnywhereでweb2pyスケジューラが失敗する
- 16. 最初の日付と月から月の最後の日付
- 17. pandas.to_datetimeリターンNATは、2270年12月31日
- 18. 最後の12ヶ月の日付を表示する方法
- 19. strtotimeと日付のバリデーション(01/20/2011と2011年1月1日)
- 20. 1970年1月1日より前の日付をR
- 21. 今日から30日前、今日から12ヶ月前に取得する
- 22. 12月31日のUIDatePickerの問題
- 23. は12ヶ月以上の範囲の日付になります
- 24. javascript日付日付が新しい日付(2011-12-13)は月曜日とみなされ、火曜日ではないのはなぜですか?このようにインスタンス化さ
- 25. R文字列の日付(例:「2014年10月1日」)を日付形式
- 26. 日付を含む6か月未満の日付、今日は2日以内
- 27. 今日が06/09/2017の場合、テラデータの前月より12ヶ月早い月の初日ですか?
- 28. Dojoの日付制約を月に1日に設定する
- 29. 8月2日から9月02日までの日付の取得方法
- 30. 解析できない日付の例外 - 月日付形式
、最高の推測では、あなたがグリニッジの東住んでいて、ISO文字列があるUTCであるということですあなたの現地時間より数時間遅れています。または、それ以外の方法です。 – JJJ
[Cant relate](http://jsbin.com/fapiduruna/edit?console) –
あなたが試したコードを投稿して評価することができます。また、ポインタについてはこの投稿を参照してください:https://stackoverflow.com/questions/3552461/how-to-format-a-javascript-date – SteveB