0

我有 2 个绑定到文本框ChkinChkout. 我需要以 dd/mm/y JQuery datepicker 格式显示日期。问题是当我尝试获取格式化日期getFullYear()的方法时dd/mm/y,我得到的结果是第 19 百(我知道默认以 1900 开头)。因此,当我在我的第一个日期选择器中选择一个日期时,第二个日期选择器年份更改为 1913(August 1913在日期选择器 2 中的 8 月月份视图中)我期望的是 2013 年。下面是我的代码-

$("#Chkin").datepicker({
    dateFormat: 'dd/mm/y',
    minDate: '+0',
    onClose: function (dateText, inst) {
        if ($("#ctl00_ContentPlaceHolder1_hdnDateformat").val() == "dd/mm/y") {

            var parts = dateText.split("/");
            var cin = new Date(Number(parts[2]), Number(parts[1]) - 1, Number(parts[0]));
        } else {
            var cin = new Date(dateText);
        }
        var chkout = new Date(cin.getFullYear(), cin.getMonth(), cin.getDate() + 1);
        var maxCOut = new Date(cin.getFullYear(), cin.getMonth(), cin.getDate() + 7);
        $("#Chkout").datepicker('option', 'minDate', chkout);
        $("#Chkout").datepicker('option', 'maxDate', maxCOut);
        $("#Chkout").datepicker("setDate", chkout);
    }
});
4

3 回答 3

1

检查您的系统时间。它必须指向错误的日期。

还将 datepicker 分配给Chkout

$("#Chkin, #Chkout").datepicker({ 
  ...
  ...
});

检查这个JSFiddle

于 2013-08-27T14:26:12.077 回答
0

更改此行:

    var cin = new Date(Number(parts[2]), Number(parts[1]) - 1, Number(parts[0]));

对此:

var cin = new Date(Number(20 + parts[2]), Number(parts[1]) - 1, Number(parts[0]));

在创建新日期之前,您必须将其转回四位数年份,以便 javascript Date() 命令知道要使用哪个世纪。

于 2013-08-27T14:47:35.520 回答
0

检查这个

它应该适合你。

jQuery(function($){
  $( "#Chkin" ).datepicker({
      minDate: '+0',
      changeMonth: true,
      numberOfMonths: 1,
      dateFormat: 'dd/mm/y',
      onClose: function( selectedDate ) {
        $( "#Chkout" ).datepicker( "option", "minDate", selectedDate );
      }
    });
    $( "#Chkout" ).datepicker({
      defaultDate: "+0",
      dateFormat: 'dd/mm/y',
      changeMonth: true,
      numberOfMonths: 1,
      onClose: function( selectedDate ) {
        $( "#Chkin" ).datepicker( "option", "maxDate", selectedDate );
      }
    });
});
于 2013-08-27T14:28:39.980 回答