2

おはようギャング。

javscriptDateオブジェクトを使用して事前設定されたjQueryDatepickerオブジェクトがあり、getMonth()が月として5ではなく50を返しています。これは以前は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) {} 
                    });
});

私の推測では、これは解決するのが簡単な問題ですが、それを説明するためにWeb上で何も見たことがありません。

4

2 に答える 2

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();
于 2012-06-25T15:40:34.593 に答える
0

月に1を追加するコードの部分を括弧で囲んで、JavaScriptが文字列の連結ではなく数学的な意味で+を解釈するようにします。

$('#datepicker1').val(press_date.getFullYear() + '-' + 
                     (press_date.getMonth() + 1) + '-' + 
                     press_date.getDate());

http://jsfiddle.net/mblase75/B53u3/

于 2012-06-25T15:40:18.790 に答える