如何创建日期对象(“23.03.2010”)

时间:2010-03-23 10:31:59

标签: javascript

我有直接来自数据库的astring,我正在创建Date的对象as Date dt=Date("23.03.2010")而且是NaN

而当我使用Date dt= Date("03/23/2010")时,它可以正常工作。

任何想法我如何才能使这个工作?。

6 个答案:

答案 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("/"))

我认为这不是最美丽的方式。