目前此代码正在运行但未按预期运行:
$("#start_date").datepicker({
dateFormat: 'yy-mm-dd',
onSelect: function(_date, _datepicker)
{
var myDate = new Date(_date);
myDate.setDate(myDate.getDate()+8);
$('#estimated_hatching_date').text(myDate);
alert( myDate);
}
});
第一个问题是,如何呈现日期。目前上面的代码警告 2010年10月1日星期五17:00:00 GMT-0700(太平洋夏令时)。我希望输出只是日期,例如09/06/2010。
第二个问题是, $('#estimate_hatching_date')。text(myDate); 不会更改文字。当该代码被触发时,没有任何改变。但是,如果我这样做: $('#estimate_hatching_date')。text('myDate'); myDate被放入#estimated_hatching_date div。
那么,我如何输出日期并将#estimated_hatching_date div中的“text”替换为选择日期后的+7天?
谢谢你, 富
答案 0 :(得分:3)
jQuery UI Datepicker具有内置formatDate功能。请@dottedquad,不要使用自制版本,日期数学和格式化比你想象的更难。角落的情况会让你撕掉你的头发。
onSelect: function(_date, _datepicker) {
var myDate = new Date(_date);
var myText = $.datepicker.formatDate('dd-mm-yy',myDate);
alert(myText);
}
答案 1 :(得分:1)
我再次阅读了ui datepicker手册并弄明白了。
$("#start_date").datepicker({
dateFormat: 'yy-mm-dd',
onSelect: function(_date, _datepicker)
{
var myDate = new Date(_date);
myDate.setDate(myDate.getDate()+8);
var fullYear = myDate.getFullYear();
var month = ((myDate.getMonth()+1) < 10) ? ('0' + (myDate.getMonth()+1)) : myDate.getMonth()+1;
var day = (myDate.getDate() < 10) ? ('0' + myDate.getDate()) : myDate.getDate();
var myNewDate = fullYear + '-' + day + '-' + month;
$('#estimated_hatching_date').text(myNewDate);
alert(myNewDate);
}
});
该代码按预期工作。其他任何人都有更多的想法会以不同的方式完成这项工作吗?
- 谢谢你, 富
答案 2 :(得分:1)
我遇到了同样的问题,并使用隐藏输入的“altField”选项。隐藏输入的值始终根据“dateFormat”
进行格式化