Jquery datepicker 返回 NAN 作为时间戳

sun*_*ife 4 javascript jquery date datepicker

我正在使用jquery datepicker选择一个日期并转换为时间戳(纪元时间)。该脚本可以任意工作。它显示任何选定月份的 1 日至 12 日的时间戳,但将时间设为这些天的凌晨 12:00(我将其在线转换)。但是从 13 号到月底,它显示NAN作为时间戳。当日期格式为 dd/mm/yy 所有天都正确显示时,这很奇怪。

$(function() {
    $("#datepicker").datepicker({dateFormat: 'dd-mm-yy',
        onSelect: function(dateText, inst) {
              var dtV = $(this).val();
              var d = new Date(dtV);
              var s = parseInt((d)/1000);
              $("#selectedDate").text("on " + dateText + "");
              $(".selectedDate2").text(s.valueOf());
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

J0A*_*NMM 8

我有一个类似的问题:通常日期选择器工作正常,也适用于 12 日之后的日期;但我不时在 Google Analytics 中看到用户收到NaN-NaN-NaN

经过调查,我发现这可能是由于谷歌翻译

我在我的分析中检查了收到错误的用户的语言。几乎所有人都有我的网站不支持的语言。这足以假设是谷歌翻译导致了错误。

要解决它,如解释here,添加notranslate类:

$(function() {
    $(".datepicker").datepicker();
    $('.ui-datepicker').addClass('notranslate');
});
Run Code Online (Sandbox Code Playgroud)


ojo*_*ual 2

当您致电时,new Date()您必须传递有效日期。dd-mm-yy不是有效日期Date,它正在计算您的月份的每天。

如果您无法更改日期格式,请尝试以下操作:

onSelect: function(dateText, inst) {
    var dtV = $(this).val();
    var exploded=dtV.split("-");
    var d = new Date(exploded[2],exploded[1],exploded[0]);
Run Code Online (Sandbox Code Playgroud)

编辑:更好更短,使用日期选择器getDate来获取Date对象:

onSelect: function(dateText, inst) {
    var d = $(this).datepicker("getDate");
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/9WMvk/