Jquery datepicker返回NAN作为时间戳

时间:2014-02-25 13:10:41

标签: 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());
        }
    });
});

4 个答案:

答案 0 :(得分: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]);

编辑:越来越短,请使用datepicker的getDate来获取Date对象:

onSelect: function(dateText, inst) {
    var d = $(this).datepicker("getDate");

http://jsfiddle.net/9WMvk/

答案 1 :(得分:0)

它将您的格式解释为mm-dd-yy; JavaScript的原生Date类假定\d\d[-/]\d\d[-/]\d\d格式的所有字符串输入均为mm-dd-yy

yyyy-mm-dd格式ISO 8601更常见,应正确解释。

答案 2 :(得分:0)

我有一个类似的问题:通常日期选择器工作正常,对于12日之后的日期也是如此;但是我不时在Google Analytics(分析)中看到用户正在获取 NaN-NaN-NaN

调查后,我发现它可能是due to Google Translate

我在分析中检查了收到错误的用户的语言。他们几乎都使用了我的网站不支持的语言。足以假设Google Translator导致了错误。

要解决此问题,如here所述,请添加notranslate类:

$(function() {
    $(".datepicker").datepicker();
    $('.ui-datepicker').addClass('notranslate');
});

答案 3 :(得分:0)

以下对我有用。刚刚添加了 ui-datepicker 类:

$(function () {
        $("#txtStartDate").datepicker();
        $('.ui-datepicker').addClass('notranslate');
    });