使用JavaScript从字符串创建对象日期

时间:2012-01-16 21:14:20

标签: php javascript datetime

在PHP中,如果我有:

$date = "2012-01-18 16:00";

我能做到:

$newDate = new DateTime($date);

在JS(jQuery)中我有:

var date = "2012-01-18 16:00";

为什么我不能:

var newDate = new Date(date);

?这让我失去了日期。

3 个答案:

答案 0 :(得分:3)

为了使该字符串为parsed,您需要在日期和时间之间设置一个

var date = "2012-01-18T16:00";
var newDate = new Date(date);

以便修复原始代码:

var date = "2012-01-18 16:00";
date = date.replace(" ", "T");
var newDate = new Date(date);

DEMO


Date构造函数也需要一年,一个月和一天

var newDate = new Date(2012, 1, 18)

虽然要让它工作,你必须分开你的字符串。

答案 1 :(得分:1)

你(差不多)可以:

new Date(year, month, day [, hour, minute, second, millisecond ]);

更好的是,请加入datejs并执行此操作:

Date.parse("2012-01-18 16:00");

答案 2 :(得分:1)

Datejs是一个开源的Javascript日期库,能够识别许多日期输入格式,包括您在问题中提供的格式。它也适用于当地时区。 如果您不想使用该库,您仍然可以使用T替换日期字符串中的空格,如下所示:

var date = "2012-01-18 16:00";
var newDate = new Date(date.replace(" ","T"));

请注意,此方法假定您的输入是GMT,并将为本地用户减去或添加适当的小时数,而Datejs则不会。