Jquery Date.parse 正在返回 NaN
Jquery Date.parse is returning NaN
我正在尝试使用 Jquery 从输入 type=datetime-local 解析一个值。我知道为什么,但是当我告诉它解析一个变量时它返回了一个 NaN。
$("#new-broadcast-arrival-time").on("change", function(){
var a = $(this).val();
var d = Date.parse(a);
console.log(a);
console.log(d);
})
我的输出是
123213-03-12T12:12
NaN
怎么了?
2) 我的期望输出是
yyyymmddhhmmss
我怎么能有这个?
这可能是因为 123213-03-12T12:12
不是有效的日期格式。 Date.parse()
将 return NaN
如果它不识别日期字符串或它是无效日期。在您的情况下,它似乎是无效的日期格式。
... NaN
if the string is unrecognised or, in some cases, contains illegal date values (e.g. 2015-02-31).
你不应该使用 Date.parse
。来自 MDN:
It is not recommended to use Date.parse
as until ES5, parsing of strings was entirely implementation dependent. There are still many differences in how different hosts parse date strings, therefore date strings should be manually parsed (a library can help if many different formats are to be accommodated).
在你的例子中它返回 NaN
,因为它超出了范围 — 年份是 123213
。
我建议您改用 Moment.js 库。
在您的情况下,给定的日期无效。
因此,如果您希望输出为:yyyymmddhhmmss
,请回答您的问题
你必须使用dateFormat
带有日期格式的示例代码:
var a = $(this).val();
var dateFormat = require('dateformat');
var yourdate = new Date(a);
dateFormat(yourdate, "yyyy mm dd hh:mm:ss");
另一种可能的方法是使用 moment.js,这是一个完整的库,可以格式化日期并用它们做很多事情。你可以看看他们的文档,它非常详细。
编辑:
如果使用图书馆真的让您感到困扰,这里是您如何在没有图书馆的情况下做到这一点。 (脏但有用...)
var str = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate() + " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
我正在尝试使用 Jquery 从输入 type=datetime-local 解析一个值。我知道为什么,但是当我告诉它解析一个变量时它返回了一个 NaN。
$("#new-broadcast-arrival-time").on("change", function(){
var a = $(this).val();
var d = Date.parse(a);
console.log(a);
console.log(d);
})
我的输出是
123213-03-12T12:12
NaN
怎么了?
2) 我的期望输出是 yyyymmddhhmmss
我怎么能有这个?
这可能是因为 123213-03-12T12:12
不是有效的日期格式。 Date.parse()
将 return NaN
如果它不识别日期字符串或它是无效日期。在您的情况下,它似乎是无效的日期格式。
...
NaN
if the string is unrecognised or, in some cases, contains illegal date values (e.g. 2015-02-31).
你不应该使用 Date.parse
。来自 MDN:
It is not recommended to use
Date.parse
as until ES5, parsing of strings was entirely implementation dependent. There are still many differences in how different hosts parse date strings, therefore date strings should be manually parsed (a library can help if many different formats are to be accommodated).
在你的例子中它返回 NaN
,因为它超出了范围 — 年份是 123213
。
我建议您改用 Moment.js 库。
在您的情况下,给定的日期无效。
因此,如果您希望输出为:yyyymmddhhmmss
,请回答您的问题你必须使用dateFormat
带有日期格式的示例代码:
var a = $(this).val();
var dateFormat = require('dateformat');
var yourdate = new Date(a);
dateFormat(yourdate, "yyyy mm dd hh:mm:ss");
另一种可能的方法是使用 moment.js,这是一个完整的库,可以格式化日期并用它们做很多事情。你可以看看他们的文档,它非常详细。
编辑:
如果使用图书馆真的让您感到困扰,这里是您如何在没有图书馆的情况下做到这一点。 (脏但有用...)
var str = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate() + " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();