我的函数可以执行查询以根据使用.datepicker()选择的特定日期范围获取一些数据。我正在尝试将响应数据中的datePicker设置为在执行查询之前选择的日期范围。

queryDate = '2009-11-01';
$('#datePicker').datepicker('setDate', queryDate);

有一个有趣的结果,将datepicker设置为今天的日期!如果只是吐出错误,我不会感到困惑。为什么将其设置为今天的日期?

How can I take the date which is formated like, ‘yyyy-mm-dd’ and set the datepicker to it?

我认为最好只是设置datePicker链接到" querydate"的文本框。

答案

如果您想支持真正的旧浏览器,则应分析日期字符串,因为使用ISO8601日期格式Date构造函数不支持IE9之前:

var queryDate = '2009-11-01',
    dateParts = queryDate.match(/(\d+)/g)
    realDate = new Date(dateParts[0], dateParts[1] - 1, dateParts[2]);  
                                    // months are 0-based!
// For >= IE9
var realDate = new Date('2009-11-01');  

$('#datePicker').datepicker({ dateFormat: 'yy-mm-dd' }); // format to show
$('#datePicker').datepicker('setDate', realDate);

检查上面的示例这里

来自: stackoverflow.com