在php中格式化日期,结果出乎意料



下面的脚本:

<?php
$postedDate = "Sat May 11 2013 20:36:24 GMT-0700 (PDT)";
$date  = date('Y-m-d H:i:s', strtotime($postedDate));
echo json_encode($date);
?>

返回值:

"2013-05-12 03:36:24"

我期望并希望它返回值:

"2013-05-11 20:36:24"

知道是怎么回事吗?

删除GMT - 0700 (PDT)并尝试您将获得所需的结果

$postedDate = "Sat May 11 2013 20:36:24";
$date  = date('Y-m-d H:i:s', strtotime($postedDate));
echo json_encode($date);

Codepad

试试这个:

$str = 'Sat May 11 2013 20:36:24 GMT-0700 (PDT)';
$date  = date('Y-m-d H:i:s',strtotime('-7 hours',strtotime($str)));
echo json_encode($date);

或者使用date_default_timezone_set设置正确的时区
http://php.net/manual/ja/function.date-default-timezone-set.php

最新更新