2014-02-25 55 views
1

我使用jQuery的datepicker的选择日期,并转换为时间戳(出现时间)。剧本任意地运作。它显示了从任何选定月份的第1日至第12日的日期时间戳,但是这些日期的中午12:00(我在线转换它)。但是,从13日到月底就说明NAN的时间戳。当日期形式为dd/mm/yy的日期显示正确时足够奇怪。jQuery的日期选择器返回NAN作为时间戳

$(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()); 
     } 
    }); 
}); 

回答

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]); 

编辑:更好和更短,使用日期选择器的getDate得到Date对象:

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

http://jsfiddle.net/9WMvk/

0

它解释您的格式,如果是mm-dd-yy; JavaScript的原生Date类假定格式\d\d[-/]\d\d[-/]\d\dmm-dd-yy所有的字符串输入。

yyyy-mm-dd格式ISO 8601是比较常见的,应该正确地解释。