我正在使用 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());
}
});
});
答案 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");
答案 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');
});