我对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)。 如何更改此代码(删除我的时区)以获得2017年12月27日
答案 0 :(得分:1)
您遇到两个问题:
您的时区(GMT + 0300)与UTC之间的差异意味着您的时区中的2017年12月27日午夜是晚上9点。 12月 26th 2017 UTC。
我假设您通过month
获得getUTCMonth
。月值以0 = 1月开头,这就是为什么你得到11。
要使用Date
2017年12月27日午夜,请使用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
请注意+ 1
之后的getUTCMonth
,因为再次,月份数字为0 = 1月到11月= 12月。