我在数据库表中创建了unix时间戳。我知道用户的时区,它也保存在一个表格中,格式为" GMT + 04:00" ," GMT + 05:30"
我尝试做的是根据时区给用户显示时间戳并显示可读时间。
实施例
$startTime = '1524391500';
echo date('h:ia', $startTime) . '<br>';
date_default_timezone_set('America/Fortaleza');
echo date('h:ia', $startTime) . '<br>';
这将给我们结果
10:05am
07:05am
问题是date_default_timezone_set不接受此
中的时区date_default_timezone_set('GMT+05:30');
所以我需要一种转换方式&#34; GMT + 05:30&#34;类似于&#34; America / Fortaleza&#34;
有人可以帮我这个吗?
答案 0 :(得分:1)
你要求的是不可能的。时区和时区偏移是两个不同的事情。
考虑像America/Sao_Paulo
这样的单个时区。它在标准时间内使用-03:00
的偏移量,在夏令时期间使用-02:00
的偏移量。
现在考虑一下你提到的America/Fortaleza
在整年使用-03:00
。
如您所见,对于给定的时区,我可能有多个偏移量,对于给定的偏移量,我可能有多个时区。如果您想为自己找到更多示例,可以review the lists of time zones and their offsets。
其他答案以及the timezone tag wiki的“时区!=偏移”部分都详细介绍了这一点。