在 PHP 中显示 GMT 偏移量
Posted
技术标签:
【中文标题】在 PHP 中显示 GMT 偏移量【英文标题】:Show GMT Offset in PHP 【发布时间】:2016-01-02 22:23:12 【问题描述】:我有一个来自https://timezonedb.com/download的时区数据库
查询的每个时区行都有一个 time_start 字段和另一个名为 gmt_offset 的字段
例如,一行是
[zone_id] => 191
[zone_name] => Asia/Kolkata
[country_name] => India
[time_start] => -891582800
[gmt_offset] => 23400
[dst] => 0
我需要通过 php 显示国家和 GMT 偏移量
India: GMT +5:30
我试过了
$plusoffset = $row->time_start+$row->gmt_offset;
$minusoffset = $row->time_start-$row->gmt_offset;
echo "Time Start: ". date('h:i:s',$row->time_start).'<br>';
echo "Offset: ". date('h:i:s',$row->gmt_offset).'<br>';
echo "Start+Offset: ". date('h:i:s',$plusoffset).'<br>';
echo "Start-Offset: ". date('h:i:s',$minusoffset).'<br>';
但这些都没有显示正确的偏移量。
我确定我遗漏了一些非常明显的东西,但我终其一生都无法弄清楚。
【问题讨论】:
【参考方案1】:只需将您到达那里的秒数 (23400) 转换为小时和分钟...
$gmt_offset = 23400;
$hours = (int)($gmt_offset / 3600);
$minutes = $gmt_offset % 3600 / 60;
echo 'Offset: ' . $hours . ':' . $minutes;
【讨论】:
它仍然显示多出一小时。例如。而不是显示 5:30,而是显示 6:30。 23400 肯定是 6.5 小时(你可以除以 3600 看看自己)你应该问一下为什么是 23400。以上是关于在 PHP 中显示 GMT 偏移量的主要内容,如果未能解决你的问题,请参考以下文章
使用时区偏移量而不是时区标识符将 GMT 时间转换为本地时间