我目前在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
var包含NaN。与getDay()或getMonth()相同。有什么问题?
ps:我从SQLite数据库中获取日期格式。我正在使用Titanium Mobile,因此javascript和SQLite是唯一涉及的内容
答案 0 :(得分:8)
您依赖Date
constuctor解析不受支持的格式。直到最近,Date
构造函数还支持 no 标准字符串格式。从ECMAScript5开始,有一个(YYYY-MM-DDTHH:MM:SS
,请注意T
而不是空格),但它仅在不到两年的时间内被指定,并且在旧版浏览器中自然不起作用。
目前,您最好的选择是自己解析(您可以在this question and its answers中找到代码),或使用类似DateJS的内容为您解析(并提供许多其他有用的功能)日期/时间的东西)。
答案 1 :(得分:-2)
Date
构造函数不会为您解析字符串。您需要使用Date.parse
来执行此操作。有趣的是,Date.parse
实际上并没有返回Date
。相反,它返回一个unix时间戳。然后,您可以将unix时间戳传递到Date
构造函数中以获取您要查找的内容。
var d = new Date(Date.parse("2011-09-29 14:58:12"));