将minDate设置为time时,jquery datetimepicker失败

时间:2012-11-23 19:22:49

标签: jquery-ui datetimepicker

$('#altdate').datetimepicker({
        timeFormat: 'hh:mm:ss',
        dateFormat: 'yy-mm-dd',
        altField: "#Event_datetime",
        altFormat: "yy-mm-dd",
        altTimeFormat: 'hh:mm:ss',
        altFieldTimeOnly: false,
        onClose: function( selectedDate ) {
            //alert(selectedDate);
            $( "#altenddate" ).datetimepicker( "option", "minDate", selectedDate );
            if (selectedDate < ($.datepicker.formatDate('yy-mm-dd', new Date())) ) {
                start_in_past = true;
            }
        }
    });

$('#altenddate').datetimepicker({
        timeFormat: 'hh:mm:ss',
        dateFormat: 'yy-mm-dd',
        altField: "#Event_enddatetime",
        altFormat: "yy-mm-dd",
        altTimeFormat: 'hh:mm:ss',
        altFieldTimeOnly: false,
        onClose: function( selectedDate ) {
            //alert(selectedDate);
            $( "#altdate" ).datetimepicker( "option", "maxDate", selectedDate );
        }
    });

当我离开datetimepicker字段时,#Event_datetime字段正确填充值“2012-12-23 13:00:00”;但是,当我关闭enddate时,行

$( "#altdate" ).datetimepicker( "option", "maxDate", selectedDate );

仅在场上设置“2012-12-23”!使用“maxDateTime”作为选项也不起作用,获取maxDateTime.getFullYear is not a function

如何使用客户端请求的完整字符串设置maxDate(Time): yy-mm-dd hh:mm:ss

2 个答案:

答案 0 :(得分:3)

所以问题实际上是设置“maxDate”选项,实际的隐藏字段#Event_datetime会在没有时间的情况下重置 - 不知道为什么。

所以我通过暂时保存#Event_datetime变量来解决它,然后再调用set maxDate并重新设置它......

var current = $('#Event_datetime').val();
$( "#altdate" ).datetimepicker( "option", "maxDate", selectedDate );
$('#Event_datetime').val(current);

答案 1 :(得分:1)

我遇到了和你一样的问题,只是没有使用alt字段。你的解决方案也适用于我,不过我必须稍微改编码。

var current = $("#startDate").datetimepicker("getDate");
$("#startDate").datetimepicker( "option", "maxDate", selectedDate );
$("#startDate").datetimepicker( "setDate", current);

(我知道我可以将其作为评论发布,但我需要格式化代码示例。)