UTC观察夏令时?

我想写一个脚本,我想将任何时区转换为UTC和反向。 但是从某些地方我知道在将任何时区转换为UTC ,不pipe是否使用DST,都会给出相同的UTC时间。 例如:如果我尝试转换这一个:

 $mytime = '2011-03-31 05:06:00.000'; $myzone = 'America/New_York'; 

到UTC与DST和没有DST,我会得到..

 (New_York->UTC DST=Yes)2011-03-31 09:06:00 (New_York->UTC DST=No)2011-03-31 09:06:00 .......... 

这是正确的吗?如果是的话,为什么? 请有人给我你的答案。

不,UTC本身从来没有DST。 它是恒定的参考框架,其他时区是相对于。

从维基百科UTC页面 :

UTC不会随着季节的变化而变化,但如果时区pipe辖区遵守夏令时或夏令时,则当地时间或民用时间可能会发生变化。 例如,UTC在美国东海岸时间比当地时间提前5小时,而在夏季则提前4小时。

换句话说,当一个时区观测到DST时,它与UTC的偏移量会在DST转换时发生变化,但那是观测DST的时区 ,而不是UTC。

在不太了解PHP时区处理的情况下,对于我来说,在转换中可以指定“with DST”或“without DST” – 时区本身指定了DST在什么时候启动的时候,它不应该是你自己指定的东西。

我有同样的问题,使用此代码:

 date_default_timezone_set('UTC'); $nowdate = date('l jS \of FY h:i:s A'); echo "Current date and time is: " . $nowdate; 

现在是夏天了,这个代码产生的时间是一个小时 – 所以我不认为在PHP的UTC时间调整到DST。

有趣的是,如果有人有解决scheme…

编辑:

在论坛上find这个代码,完美的工作!

 date_default_timezone_set('Europe/London'); $TIME = date("m/d/YH:i",time()); 

所以你可以使用$ TIME来调用当前的date和时间。 可以通过更改date()标记内的位来调整输出以显示不同的内容。 如果你想调整date()输出,使用本指南: http : //php.net/manual/en/function.time.php

希望这可以帮助 :)