在Javascript中混淆setUTC

时间:2016-10-31 17:35:56

标签: javascript date

所有

我写这个问题的时间是:

2016年10月31日星期一10:19:01 GMT-0700(太平洋夏令时)

setUTCDate有一件事令我困惑,我想建立一个Date Object到2016年6月1日00:00:00:000,所以我这样做了:

  1. var dt = new Date(); //这一步,显示:2016年10月31日星期一10:19:01 GMT-0700(太平洋夏令时)
  2. dt.setUTCMonth(5); //这一步,它显示:Wed Jul 01 2016 10:19:01 GMT-0700(Pacific Daylight Time)我不明白,为什么不是2016年6月30日10 :19:01 GMT-0700?
  3. dt.setUTCDate(1);
  4. 由于

1 个答案:

答案 0 :(得分:2)

要回答您的问题,您将从10月31日开始。如果您将月份设置为5,那么这相当于尝试将日期更改为6月31日。由于不存在此日期,因此将其调整为7月1日。

但是如果你想为2016年6月1日创建一个Date对象,那么只需创建一个:

var d  = new Date(2016, 5, 1);           // June 1, 2016, 12AM local time
var d2 = new Date(Date.UTC(2016, 5, 1)); // June 1, 2016, 12AM UTC