JavaScript date()对象使用getYear(和其他)返回NaN

问题描述 投票:4回答:3

我目前在转换JavaScript中的字符串dateTime对象时遇到一些问题

我想是因为我的字符串不能在new Date()中正确使用,但是我不确定这是问题所在。

我的输入:“ 2011-09-29 14:58:12”

我的代码:

var date = "2011-09-29 14:58:12";
var added = new Date(date);
var year = added.getYear();

但是,我的year变量包含NaN。与getDay()或getMonth()相同。有什么问题吗?

ps:我正在从SQLite数据库中获取其格式的日期。而且我正在使用Titanium Mobile,因此仅涉及javascript和SQLite

javascript datetime date
3个回答
9
投票

您依赖Date constuctor解析不支持的格式。直到最近,Date构造函数还支持no标准字符串格式。从ECMAScript5开始,有一个(Date,请注意YYYY-MM-DDTHH:MM:SS而不是空格),但仅指定了不到两年的时间,自然无法在较旧的浏览器中使用。

目前,最好的办法是自己解析(您可以在T中找到代码),或使用类似this question and its answers的东西为您解析(并提供许多其他有用的日期/时间信息) 。


0
投票

我发现了我的案子所缺少的。date.getYear();日期中的日期必须为MM-DD-YYYY格式。或者当我的日期无效时给了我NAN


-2
投票

DateJS构造函数将不会为您解析字符串。您需要使用Date来执行此操作。有趣的是,Date.parse实际上没有返回Date.parse。而是返回unix时间戳。然后,您可以将unix时间戳传递到Date构造函数中,以获取所需的内容。

Date
© www.soinside.com 2019 - 2024. All rights reserved.