<分区>
这是我第一次得到这个结果。
我使用的是 Telerik 控件 RadDatePicker,我正在客户端分配日期。
问题是控件不接受字符串作为日期,而是接受 javascript 中的 Date 对象
所以,我在控件中设置日期的代码是
var radDateControl = $find("radDateControl");
radDateControl.set_selectedDate(new Date('2016-04-26'));
但是,我意识到新日期返回的是昨天的日期!为什么?
现在是美国东部时间下午 5:58(美国和加拿大)。如果我这样做
alert(new Date('2016-04-26'));
我明白了
Mon Apr 25 2016 20:00:00 GMT-0400 (Eastern Daylight Time)
为什么以及如何才能得到今天的一天。
更新
我最后做的是这个。希望对其他人有帮助。
var dateAsString = "2016-04-26";
var year = dateAsString.split('-')[0];
var month = dateAsString.split('-')[1];
var day = dateAsString.split('-')[2];
var date = new Date(Date.UTC(year, month - 1, day, 0,0,0));
date.setTime(date.getTime() + date.getTimezoneOffset() * 60 * 1000);
rpdDateControl.set_selectedDate(date);