【发布时间】:2018-10-02 13:12:13
【问题描述】:
我在数据库表中创建了 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');
所以我需要一种将“GMT+05:30”转换为“America/Fortaleza”之类的方法
有人可以帮我解决这个问题吗?
【问题讨论】:
-
如果您需要将其显示为名称,最好将用户的时区保存为
America/Fortaleza-like 格式。如您所知 - 时区名称与其偏移量之间并不总是 1:1 的关系。例如,您的America/Fortaleza与America/Cordoba或Antarctica/Rothera(以及更多)具有相同的偏移 (UTC−03:00)。 -
@Smuuf 是的,数据库已经创建,数据由其他开发人员保存。我必须使用它。我认为如果我们能得到至少一个匹配的时区就足够了,因为我不需要确切的时区,只需要显示正确的时间。
标签: php datetime timezone timestamp unix-timestamp