1

我对 boostrap-datepicker 有疑问。在这样的例子中我的问题的核心

var array = [2017, 12, 27];
var date = new Date(array);
console.log(date);
//Wed Dec 27 2017 00:00:00 GMT+0300 (RTZ 2 (winter))
var day =  date.getUTCDate();
console.log(day);
//26  -> I WANT 27
console.log(month);
//11  -> I WANT 12
console.log(year);
//2017

正如你在最后看到的那样,我得到了 26(我需要的那一天是 27)和 11(我需要的月份是 12)。如何更改此代码(删除我的时区)以获取 27、12、2017

4

1 回答 1

1

您遇到了两个问题:

  1. 您的时区 (GMT+0300) 和 UTC 之间的差异意味着您所在时区的 2017 年 12 月 27 日午夜是晚上 9 点。UTC 时间 2017 年12 月26日。

  2. 我假设你month通过getUTCMonth. 月份值从 0 = 一月开始,这就是为什么你得到 11。

要在 a 中获得 2017 年 12 月 27 日午夜Date,请使用Date.UTC

var dt = new Date(Date.UTC(2017, 12 - 1, 27));
console.log(dt.getUTCDate());      // 27
console.log(dt.getUTCMonth() + 1); // 12
console.log(dt.getUTCFullYear());  // 2017

注意+ 1after getUTCMonth,因为月份数字是 0 = 一月到 11 = 十二月。

于 2017-03-08T16:02:44.967 回答