0

我不确定我这样做是否正确,但是日期函数似乎正确显示,但由于某种原因,它返回的是上午而不是下午的时间,例如,

现在,如果我要使用以下方法创建新日期:

$time = new mongoDate();

然后我将它保存在数据库中,在它显示的记录中如下所示:

ISODate("2014-10-22T00:22:34.619Z")

我假设有些事情我做的不对,但是当我格式化它时,使用:

date('d M, Y h:ia', $time->sec)

它显示如下:

22 Oct, 2014 12:22am

我希望这是非常明显的事情,但是从我在 ISOdate 中可以看出,它在上午时间显示,所以我的问题是,为什么它将它存储在上午而不是下午?

4

1 回答 1

1

$time->sec有unix时间戳。当您在date()函数中使用此时间戳时,格式化日期将基于您设置的时区。这就是为什么你会得到 12 小时的差异。

$dt = new DateTime("@" . $time->sec); // DateTime instance in Z (zulu) timezone
print_r($dt); // print the object
$dt->setTimezone(new DateTimezone('... set your timezone ...'));
print_r($dt); // print the object
于 2014-10-22T09:03:45.150 回答