【发布时间】:2014-09-04 15:28:27
【问题描述】:
我在 javascript 中有一个日期对象,如下所示:
var date = 2014-12-01T00:00:00.000Z
如果我这样做:
var date = new Date(date);
date.setUTCMonth(date.getUTCMonth()+1);
然后toISOString()方法显示期望值:
2015-01-01T00:00:00.000Z
但是当我通过 POST 将该日期时间字符串发送到 PHP 脚本并使用 DateTime 类将其解析回日期时,我得到了:
2014-12-31 19:00:00 -0500
我尝试使用 DateTimeZone 类设置时区,并将时区设置为我自己的和 UTC 却没有运气:
new DateTime($_POST['DateTime'],new DateTimeZone('America/Mexico_City'));
new DateTime($_POST['DateTime'],new DateTimeZone('UTC'));
有没有办法使用Date 类在javascript 中设置时区?还有其他方法可以解决这个问题吗?我在处理时区方面的经验即使不是零也很少。
更新:
这是我按照toISOString() 方法 (javascript) 的 ISO 格式时间字符串:
2014-09-01T00:00:00.000Z
这是我的$_POST var 的内容,根据print_r():
Array (
[DateTime] => 2014-09-01T00:00:00.000Z
)
这是我的格式化程序函数的输出,使用 '%c' 格式(es_MX 语言环境):
dom 31 前 2014 年 19:00:00 CDT
以及上面提到的格式化函数:
function formatDate($date) {
return utf8_encode(strftime('%c', $date->getTimestamp()));
}
【问题讨论】:
标签: javascript php date datetime