jQuery datetimepicker插件范围错误

时间:2014-05-23 03:32:46

标签: javascript jquery datetimepicker

我正在使用以下jQuery插件:https://github.com/xdan/datetimepicker来实现开始和结束日期,其中结束不能在开始之前,而开始不能在结束之后。根据文档中的示例(我需要时间和日期),我的代码如下:http://xdsoft.net/jqplugins/datetimepicker/#range

问题在于没有设置限制。从代码中我可以看到https://github.com/xdan/datetimepicker/blob/master/jquery.datetimepicker.js#L509要求minDatemaxDate在其前面加-+。这是一个错误还是我错过了什么?

var format = "Y-m-d H:i:s";
var startSelector = "input[type='datetime-picker'][name='start']";
var endSelector = "input[type='datetime-picker'][name='end']";
$(startSelector).datetimepicker( {
    format : format,
    onShow : function(ct) {
        var val =  $(endSelector).val();
        console.log('start max val: '+val);
        var opts = {
            formatDate : "Y-m-d",
            maxDate : val ? '+'+val.split(' ')[0] : false
        };
        this.setOptions(opts);
    },
});
$(endSelector).datetimepicker( {
    format : format,
    onShow : function(ct) {
        var val =  $(startSelector).val();
        console.log('end min val: '+val);
        var opts = {
            formatDate : "Y-m-d",
            minDate : val ? '-'+
                    val.split(' ')[0] : false
        };

        this.setOptions(opts);
    },
});

1 个答案:

答案 0 :(得分:7)

您可以使用默认脚本http://xdsoft.net/jqplugins/datetimepicker/ 但是你应该知道它对于格式Y / m / d来说是完美的。

如果您想更改格式,请不要忘记再次将格式放在最小/最大日期旁边

这是我的脚本示例,它适用于任何格式:

jQuery(function(){
 jQuery('#date_timepicker_start').datetimepicker({
  format:'d/m/Y - H:i',
  onShow:function( ct ){
   this.setOptions({
    minDate:0,
    maxDate:jQuery('#date_timepicker_end').val()?jQuery('#date_timepicker_end').val():false,formatDate:'d/m/Y - H:i'
   })
  },
  timepicker:true,
  step : 60,
  lang: 'en',
 });
 jQuery('#date_timepicker_end').datetimepicker({
  format:'d/m/Y - H:i',
  onShow:function( ct ){
   this.setOptions({
    minDate:jQuery('#date_timepicker_start').val()?jQuery('#date_timepicker_start').val():false,formatDate:'d/m/Y - H:i'
   })
  },
  timepicker:true,
  step : 60,
  lang: 'en',
 });
});