.datepicker(';setdate';)问题,在jQuery中
我有一个函数,它执行一个查询,根据使用.datepicker()选择的特定日期范围获取一些数据。我试图将响应数据中的日期选择器设置回执行查询之前选择的日期范围.datepicker(';setdate';)问题,在jQuery中,jquery,jquery-ui,jquery-ui-datepicker,Jquery,Jquery Ui,Jquery Ui Datepicker,我有一个函数,它执行一个查询,根据使用.datepicker()选择的特定日期范围获取一些数据。我试图将响应数据中的日期选择器设置回执行查询之前选择的日期范围 queryDate = '2009-11-01'; $('#datePicker').datepicker('setDate', queryDate); 具有将日期选择器设置为今天日期的有趣结果!如果它只是吐出一个错误,我就不会那么困惑了。为什么要定在今天 如何获取格式为“yyyy-mm-dd”的日期并将日期选择器设置为该日期? 我想最
queryDate = '2009-11-01';
$('#datePicker').datepicker('setDate', queryDate);
具有将日期选择器设置为今天日期的有趣结果!如果它只是吐出一个错误,我就不会那么困惑了。为什么要定在今天
如何获取格式为“yyyy-mm-dd”的日期并将日期选择器设置为该日期?
我想最好只将datepicker链接到的文本框设置为“queryDate”。尝试将其更改为:
queryDate = '2009-11-01';
$('#datePicker').datepicker({defaultDate: new Date (queryDate)});
正如Scobal的文章所暗示的,datepicker正在寻找一个日期对象,而不仅仅是一个字符串!因此,要修改示例代码以执行所需操作,请执行以下操作:
var queryDate = new Date('2009/11/01'); // Dashes won't work
$('#datePicker').datepicker('setDate', queryDate);
如果您想支持非常旧的浏览器,您应该解析日期字符串,因为IE9之前不支持将ISO8601日期格式与
date
构造函数一起使用:
var queryDate='2009-11-01',
dateParts=queryDate.match(/(\d+)/g)
realDate=新日期(日期部分[0],日期部分[1]-1,日期部分[2]);
//月份是以0为基础的!
//对于>=IE9
var realDate=新日期('2009-11-01');
$('#datePicker')。datePicker({dateFormat:'yy-mm-dd'});//显示格式
$('#datePicker')。datePicker('setDate',realDate);
检查上述示例。如果设置了minDate或maxDate选项,请检查您试图将其设置为的日期是否在允许的日期范围内。当您试图调用setDate时,必须提供有效的javascript日期对象
queryDate = '2009-11-01';
var parsedDate = $.datepicker.parseDate('yy-mm-dd', queryDate);
$('#datePicker').datepicker('setDate', parsedDate);
这将允许您在datepicker中对查询日期和字符串日期表示使用不同的格式。当您创建多语言站点时,这种方法非常有用。另一个有用的函数是formatDate,它将javascript日期对象格式化为字符串
$.datepicker.formatDate( format, date, settings );
您遗漏了一点:
$('#datePicker').datePicker('setDate',realDate)代码>不要自行解析日期。这是一个糟糕的方法。最好使用datepicker parseDate函数。看一看我的答案。@Hollister您确定在编写之前的答案时,parseDate
实用程序存在吗?不过我同意,如果可以的话,我总是更喜欢现有的代码。有人对IE8有任何问题吗?使用相同的技术$('#datePicker').datePicker('setDate',realDate)代码>似乎我遇到了一些问题。只有不支持在日期构造函数中使用日期字符串的浏览器才不应该被认为是真正的魅力所在。根据CMS的解决方案,我们更愿意使用内置的日期对象,而不是DIY解析器。然而,当前文档的状态是:新日期可能是日期对象或当前日期格式的字符串。使用.datepicker({dateFormat:'yy-mm-dd'})创建日期选择器时设置格式;但这不起作用——这是一个bug、文档错误还是其他什么?+1比公认的答案好得多。太糟糕了,所以没有办法表明在被接受的答案之后出现了更好的答案(在本例中是几年后)。@Hollister,您可以标记该问题,让主持人看一看,当然可以解释后面的答案更好。我认为版主可以改变答案的接受度。这正是我们想要的,因为某些原因,这比setDate更有效。在我的例子中,setDate清除了某个随机间隔上的输入,但defaultDate每次都有效。
function calenderEdit(dob) {
var date= $('#'+dob).val();
$("#dob").datepicker({
changeMonth: true,
changeYear: true, yearRange: '1950:+10'
}).datepicker("setDate", date);
}