早上好帮派。
我有一个jQuery Datepicker对象,它是使用javscript Date对象预先编写的,我有getMonth()作为月份返回50,而不是5.这是之前的工作,最近是2012年4月27日。
以下是代码:
$(document).ready(function(){
$('#datepicker1').attr('readonly', 'readonly');
var press_date = new Date(); //This is the Date object that you're getting from external source
$('#datepicker1').val(press_date.getFullYear()+'-'
+press_date.getMonth()+1+'-'
+press_date.getDate());
$('#datepicker1').datepicker({
showAnim:'slide',showOn: 'button',
dateFormat : 'yy-mm-dd',
buttonImage: 'images/calendar.jpg',
buttonImageOnly: true,onSelect: function(dateText, inst) {}
});
$('#datepicker').attr('readonly', 'readonly');
$('#datepicker').datepicker({
showAnim:'slide',showOn: 'button',
dateFormat : 'yy-mm-dd',
buttonImage: 'images/calendar.jpg',
buttonImageOnly: true,onSelect: function(dateText, inst) {}
});
});
我的猜测是,这是一个需要解决的简单问题,但我没有在网上看到任何解释它的内容。
答案 0 :(得分:3)
问题是表达式中的x.getMonth()+ 1。由于你是串联字符串,解析器会变得混乱。您可以在括号中包围x.getMonth()+ 1,或者只是将该计算移到字符串连接之外:
例如,用括号括起来:
x.getFullYear()+'-'+(x.getMonth()+1)+'-'+x.getDate()
更新:要将月份值填零,我会明确地将计算结果移动到自己的行,以便明确:
month = x.getMonth() + 1;
monthString = month < 9 ? '0' + month : month;
dbDate = x.getFullYear() + '-' + monthString + '-' + x.getDate();
答案 1 :(得分:0)
将代码中的一部分包含在括号中的月份中,因此JavaScript在数学意义上解释+而不是字符串连接:
$('#datepicker1').val(press_date.getFullYear() + '-' +
(press_date.getMonth() + 1) + '-' +
press_date.getDate());