jQuery Datepicker setDate显示错误的日期

时间:2016-12-13 20:37:19

标签: javascript jquery datepicker calendar

日历应该显示在2016年10月19日,但它一直显示在2016年10月18日。我无法弄清楚原因!

$('#datepickerDateReceived').datepicker({
        format: 'yyyy-mm-dd'
}).datepicker(
        'setDate', new Date('2016-10-19')
    );

http://jsfiddle.net/rt3nC/34/

2 个答案:

答案 0 :(得分:0)

问题是日期字符串被解析为UTC 0,而不是本地时区。 source

要解决此问题,只需在日期字符串中添加时间

即可
$('#datepickerDateReceived').datepicker({
        format: 'yyyy-mm-dd'
}).datepicker(
        // Initialize the date to be 00:00 local timezone on October 19, 2016
        'setDate', new Date('2016-10-19 00:00')
    );

答案 1 :(得分:0)

这在Safari中不起作用: $('#datepickerDateReceived')。datepicker('setDate',new Date('2016-10-19 00:00'));

为了使它能够在Safari中工作,我不得不采用这种方式: $('#datepickerDateReceived')。datepicker('setDate',new Date('2016-10-19 00:00'.replace(/ \ s /,'T'))));