我有直接来自数据库的astring,我正在创建Date的对象as
Date dt=Date("23.03.2010")
而且是NaN
而当我使用Date dt= Date("03/23/2010")
时,它可以正常工作。
任何想法我如何才能使这个工作?。
答案 0 :(得分:2)
您必须以MDY格式传递字符串(已解析)日期。这是为了防止歧义(5月6日是5月6日还是6月5日?)
如果您愿意,可以使用new Date(year, month, day)
格式,并单独传递参数。
答案 1 :(得分:2)
您可以从数据库中解析字符串,然后创建日期对象。您必须从解析的月份值中减去1才能获得正确的日期。
var dateString = "23.03.2010";
var dateParts = dateString.split(".");
var dt = new Date(dateParts[2], dateParts[1] - 1, dateParts[0]);
答案 2 :(得分:1)
最安全的方法是,您可以将日期作为自1970-01-01以来的毫秒返回,然后您可以轻松地从中创建Date对象。例如:
var n = 1269302400000;
var dt = new Date(n);
答案 3 :(得分:0)
请注意,您需要使用Date
运算符from the Mozilla Developer Center调用new
:
在非构造函数中调用Date 上下文(即没有新的 operator)将返回一个字符串 代表当前时间。
同一页面详细介绍了Date
构造函数的语法。
如果要从字符串构造Date
,则接受的格式由Date.parse
方法的规则控制。有关这些规则的摘要,请参阅Microsoft's Date.parse
documentation。
答案 4 :(得分:0)
试一试......
var dateParts = '23.03.2010'.split('.');
// -1 from month because javascript months are 0-based
var dateObj = new Date(dateParts[2], dateParts[1]-1, dateParts[0]);
答案 5 :(得分:-1)
试
d="23.03.2010".split(".");
Date dt=Date([d[1],d[0],d[2]].join("/"))
我认为这不是最美丽的方式。