Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery日期选择器显示当前日期_Javascript_Jquery_Datepicker - Fatal编程技术网

Javascript jQuery日期选择器显示当前日期

Javascript jQuery日期选择器显示当前日期,javascript,jquery,datepicker,Javascript,Jquery,Datepicker,日期选择器脚本: HTML输入: 在日历图标中单击dateFormat:“dd-M-yy”时,输出2014年11月27日,并显示突出显示的当前日期 但dateFormat:“dd-M-y”,输出2012年3月1日,并将2012年3月1日显示为高亮显示而非当前 我正在使用jQuery验证引擎验证日期格式。下面的fiddle可以正常工作,但不符合预期的日期格式 JS小提琴: 谢谢。我看到你的JS小提琴了。 我想,您在RegExp结果上有一个错误,它是空的 我试图更改你的RegExp 新的RegExp

日期选择器脚本:

HTML输入:

在日历图标中单击dateFormat:“dd-M-yy”时,输出2014年11月27日,并显示突出显示的当前日期

但dateFormat:“dd-M-y”,输出2012年3月1日,并将2012年3月1日显示为高亮显示而非当前

我正在使用jQuery验证引擎验证日期格式。下面的fiddle可以正常工作,但不符合预期的日期格式

JS小提琴:

谢谢。

我看到你的JS小提琴了。 我想,您在RegExp结果上有一个错误,它是空的

我试图更改你的RegExp

新的RegExp/[12]\d | 0[1-9]| 3[0-1]-一月|二月|三月|四月|五月|六月|七月|八月|九月|十月|十一月|十二月|四月|

改为

新规则/[12]\d | 0[1-9]| 3[0-1]-一月|二月|三月|四月|五月|六月|七月|八月|九月|十月|十一月|十二月|

改变

var isOk=d.getFullYear==year&&d.getMonth==months.indexOfmonth&&d.getDate==day

var isOk=d.getYear==year.slice-2&&d.getMonth==months.indexOfmonth&&d.getDate==day

下面是完整的代码。第二次修改版本

$( "#task_start_date").datepicker({
    monthNamesShort: ["JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"],
    dateFormat: 'dd-M-y',
    defaultDate: '18-Nov-14',
    onClose: function (date) {
        var pattern = new RegExp(/([12]\d|0[1-9]|3[0-1])-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d{2,4})/);
        var match = pattern.exec(date);
        if (match == null)
             return false;

        var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
        var year = match[3];
        var month = match[2];
        var day = match[1];

        var d = new Date(year, months.indexOf(month), day);
        var isOk = (d.getYear() == (year).slice(-2) && d.getMonth() == months.indexOf(month) && d.getDate() == day);
                alert(isOk);    }
});
$("#task_start_date").datepicker( "setDate", new Date());

在我的Chrome中工作得很好。尝试清除浏览器缓存。对我来说,最新的Chrome/Firefox和IE9+上正确显示了日期。但不知何故,它仍然显示正确日期格式的验证消息。如果我更改日期格式:“dd-M-y”,日历将不显示当前日期,而是显示来自DB viz的日期。01-MAR-14您可能需要检查您的区域设置或尝试其他浏览器。看看问题是否仍然存在谢谢你的回答。但如果我更改日期格式:“dd-M-y”,日历将不会突出显示当前日期。也可以允许大写月份。它是有线的。我已选中类名ui状态active。输入预先填充了一些以前的日期,当日历显示相同的日期而不是当前日期时,当格式更改为dd-M-y时,`var months=[Jan,Feb,Mar,Apr,May,Jun,Jul,Jul,Aug,Sep,Oct,Nov,Dec]`如何允许使用Jan格式?谢谢,但这里我不使用setDate作为它来自2012年3月1日格式的DB。尽管如此,它仍然希望01-Mar-12格式在我粘贴代码之后仍然有效。另外,如果dateformat为dateformat:“dd-M-yy”,则返回false。
<input type="text" class="form-control validate[required,custom[date]]" name="task_start_date" id="task_start_date" />
$( "#task_start_date").datepicker({
    monthNamesShort: ["JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"],
    dateFormat: 'dd-M-y',
    defaultDate: '18-Nov-14',
    onClose: function (date) {
        var pattern = new RegExp(/([12]\d|0[1-9]|3[0-1])-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d{2,4})/);
        var match = pattern.exec(date);
        if (match == null)
             return false;

        var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
        var year = match[3];
        var month = match[2];
        var day = match[1];

        var d = new Date(year, months.indexOf(month), day);
        var isOk = (d.getYear() == (year).slice(-2) && d.getMonth() == months.indexOf(month) && d.getDate() == day);
                alert(isOk);    }
});
$("#task_start_date").datepicker( "setDate", new Date());