【问题标题】:Automatically get the time taking day light saving hours into account自动获取考虑夏令时的时间
【发布时间】:2013-09-18 05:40:51
【问题描述】:

我想我要疯了,因为这必须很简单。

我电脑上的时间目前是:14:41 当我运行以下任何代码时,它会返回:13:41。

$date = new DateTime();
$date->format('Y-m-d H:i:s') //13:41
date('Y-m-d H:i:s') //13:41

date_default_timezone_get() 返回 UTC。

现在我明白为什么晚了一个小时(因为我们处于夏令时)但是没有一个函数可以考虑所有这些并返回实际时间吗?

p.s 我预计这里会漏掉一些明显的东西。

编辑: date('Y-m-d H:i:s -- I -- e'); 返回 2013-09-13 14:15:47 -- 0 -- UTCI 参数不应该返回 1 吗?

【问题讨论】:

标签: php


【解决方案1】:

不要依赖 php.ini 设置。如果您想控制时区,请控制时区:

<?php

$date = new DateTime();
$date->setTimezone(new DateTimeZone('Europe/London'));
$date->format('Y-m-d H:i:s e')

将“欧洲/伦敦”替换为您对“实际时间”的定义。

顺便说一句:如果date_default_timezone_get() 返回UTC,那么$date-&gt;format() 的输出在每台具有正确时钟的机器上都是相同的。这就是 UTC 的意义所在。

【讨论】:

    猜你喜欢
    • 2012-09-08
    • 2011-08-14
    • 2013-09-22
    • 1970-01-01
    • 1970-01-01
    • 2018-01-01
    • 2012-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多