在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);
?这让我失去了日期。
答案 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);
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则不会。