jQuery datepicker UI getdate() - 我如何只输出日期而不是星期三2010年10月06日17:00:00 GMT-0700(太平洋夏令时)

时间:2010-09-07 01:43:56

标签: jquery-ui jquery-ui-datepicker

目前此代码正在运行但未按预期运行:

$("#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天?

谢谢你,      富

3 个答案:

答案 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”

进行格式化