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
希望这可以帮助 :)