【问题标题】:how to format the mongoDate function properly如何正确格式化 mongoDate 函数
【发布时间】:2014-10-22 01:25:05
【问题描述】:

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

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

$time = new mongoDate();

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

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

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

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

显示如下:

22 Oct, 2014 12:22am

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

【问题讨论】:

  • 时间是祖鲁时间或格林威治标准时间,可能与您当前的时区不同。以 GMT 存储日期是最佳做法。
  • 如何使用 mongoDate 函数做到这一点?

标签: php mongodb date format mongodate


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-13
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 2016-09-12
    • 2018-04-11
    相关资源
    最近更新 更多