Search code examples
jquery-uidatetimepicker

jquery datetimepicker fails when setting the minDate with time


$('#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 );
        }
    });

The #Event_datetime field correctly gets filled with the value "2012-12-23 13:00:00" when I leave the datetimepicker field; however, when I close the enddate one, the line

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

only sets "2012-12-23" on the field! using "maxDateTime" as option also does not work, getting maxDateTime.getFullYear is not a function.

How to set the maxDate(Time) with the full string as requested by the client: yy-mm-dd hh:mm:ss


Solution

  • So the problem really is that setting the "maxDate" option, the actual hidden field #Event_datetime gets reset to without time - no idea why.

    So I solved it by saving temporarily the #Event_datetime variable before calling to set maxDate and resetting it again...

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