我想知道是否有办法使用PHP生成特定时刻所有当前时区的列表?
例如。所有全球位置,当前时间为 09:00
。
PHP会自动考虑夏令时吗?
我在这里或其他网站遇到的任何事情都是倒计时或每个时区显示。我只希望代码在设定的时间吐出那些代码而忽略其他代码,直到它说到时间为止。
答案 0 :(得分:1)
你可以试试这样的事情
DateTime
实例这样的假设您希望当前小时的所有区域都是上午9点(所以在09:00到09:59之间的任何时间)
$now = new DateTime();
$searchHour = 9;
$zones = array_filter(DateTimeZone::listIdentifiers(), function($tz) use ($now, $searchHour) {
return $now->setTimezone(new DateTimeZone($tz))->format('G') == $searchHour;
});
如果您想获取没有国家/地区前缀的区域标识符列表,请尝试这样的事情......
$shortZones = array_map(function($tz) {
// Turn "_" to " " and return the last part after "/"
return str_replace('_', ' ', substr(strstr($tz, '/'), 1));
}, $zones);