Datepicker更改日期格式

时间:2013-08-30 05:44:15

标签: jquery html jquery-ui-datepicker

如何在datepicker“#to”dd.mm.yy上更改日期。现在写mm / dd / yy。 如果我改变/。正确的计算和ID我将(d.getMonth() + 1) + '/' + d.getDate() + '/' + d.getFullYear();更改为(d.getDate() + '/' + d.getMonth() + 1) + '/' + d.getFullYear();无法正常工作。

这是代码:

$(function () {
    $('#to').attr('disabled', true);
    $("#from").datepicker({
        dateFormat: 'dd.mm.yy',
        onSelect: function (selectedDate) {
            var x = selectedDate.split('.');
            var d = new Date(x[1] + ',' + x[0] + ',' + x[2]);
            var res = d.setDate(d.getDate() + 7);
            var dateMsg = (d.getMonth() + 1) + '/' + d.getDate() + '/' + d.getFullYear();
            $("#to").removeAttr('disabled').removeClass('hasDatepicker').datepicker({
                minDate: dateMsg
            });
        }
    });
});

和html:

<label for="from">From</label>
<input type="text" id="from" name="from" />
<br/>
<label for="to">to</label>
<input type="text" id="to" name="to" />

以下是所有代码:http://jsfiddle.net/JBrvn/4/

3 个答案:

答案 0 :(得分:1)

为什么不在窗口小部件初始化时设置日期格式 - 我也重新设计了解决方案

$(function () {
    var dateFormat = 'dd.mm.yy';

    $("#from").datepicker({
        dateFormat: dateFormat,
        onSelect: function (selectedDate) {
            var date = $.datepicker.parseDate(dateFormat, selectedDate)
            var tod = date.setDate(date.getDate() + 7);
            $to.prop('disabled', false).datepicker( "option", "minDate", new Date(tod ));
        }
    });
    var $to = $("#to").datepicker({
        dateFormat: dateFormat
    }).prop('disabled', true);
});

演示:Fiddle

答案 1 :(得分:1)

DEMO

$(function () {
    $('#to').attr('disabled', true);
    $("#from").datepicker({
        dateFormat: 'dd.mm.yy',
        onSelect: function (selectedDate) {
            var x = selectedDate.split('.');
            var d = new Date(x[1] + ',' + x[0] + ',' + x[2]);
            var res = d.setDate(d.getDate() + 7);
            var dateMsg = d.getDate() + '.' + (d.getMonth() + 1) + '.' + d.getFullYear();
            $("#to").removeAttr('disabled').removeClass('hasDatepicker').datepicker({
                minDate: dateMsg,
                dateFormat: 'dd.mm.yy'
            });
        }
    });
});

答案 2 :(得分:1)

您必须将minDate属性强制转换为Date对象而不是字符串。从设置日期获得的字符串将是毫秒值,并且不能由datepicker呈现。所以只是投出价值,它应该工作得很好

$('#to').attr('disabled', 'disabled');
$("#from").datepicker({
    dateFormat: 'dd.mm.yy',
    minDate: new Date(),
    onSelect: function (selectedDate) {            
        var x = selectedDate.split('.');
        var d = new Date(x[1] + ',' + x[0] + ',' + x[2]);
        var res = d.setDate(d.getDate() + 7);
        $("#to").removeAttr('disabled').datepicker({
         dateFormat: 'dd.mm.yy',
         minDate: new Date(res)                
    });
  }
});