反向时区偏移量
问题描述:
我有一个时区名称,我希望时区的名称加上它的偏移量。反向时区偏移量
例如,亚洲/迪拜是+4,我想扭转到-4 ...,并将它解析为EDT
语言:PHP
下面是什么它看起来一个样像:
$timezone = "Asia/Dubai"
$offset = $timezone->getOffset();
$offset 0 - $offset;
$timezone = $offset->getTimeZone();
输出:EDT
答
(PHP 5> = 5.2.0)
,以获得与UTC
<?php
$offUTC = new DateTime('now', new DateTimeZone('Asia/Dubai'));
echo $offUTC->getOffset(); // in seconds
echo ($offUTC->getOffset()/3600); // in hours
?>
偏移要获得两个任意区域
<?php
$timezoneDubai = new DateTimeZone("Asia/Dubai");
$timezoneEDT = new DateTimeZone("America/New_York"); // note EDT may work, support is not clear
$datetimeDubai= new DateTime("now", $timezoneDubai);
$datetimeEDT = new DateTime("now", $timezoneEDT);
$timeOffset = $datetimeEDT->getOffset($datetimeDubai);
echo $timeOffset; // in seconds
echo ($timeOffset/3600) // in hours
?>
我不是你的目标是什么确保100%之间的时间差,但这应该帮助你。也可以在这里查看更多的DateTime函数:http://www.php.net/manual/en/book.datetime.php
有点奇怪的事情可以做...我可以问为什么吗?而且,您想如何处理大于±6的偏移量?偏移量应该加倍,然后增加或减去24以回到实时区域? – 2010-05-23 06:34:31
那么,我有错误的逻辑。我实际上需要扭转偏移,所以+4变成-4。显示日期时,我们添加4进行本地化,搜索时,我们减去日期以说明本地化日期。这就是目前的工作原理,不要责怪我。 – HyderA 2010-05-23 06:43:19
你能举个例子吗?这可能是一次性转换,所以速度不是主要因素? – VolkerK 2010-05-23 07:42:16