PHP timezone_identifiers_list() 支持的所有时区

本文主要介绍了PHP支持的常用时区列表,包括中国地区(北京、乌鲁木齐)、国际主要城市(纽约、伦敦、东京等)的时区信息,以及如何使用timezone_identifiers_list()函数获取PHP全部400+时区数据,为开发者提供全球时区配置参考。

PHP 支持的所有时区可以通过timezone_identifiers_list()函数获取,总数超过 400 个。以下是一些常见和重要的时区分类:

UTF 时区图

中国地区时区

时区标识 时区名称 UTC 偏移 备注
Asia/Shanghai 北京时间 UTC+8 中国标准时间,全国大部分地区使用
Asia/Chongqing 北京时间 UTC+8 与Asia/Shanghai相同
Asia/Harbin 北京时间 UTC+8 与Asia/Shanghai相同
Asia/Urumqi 乌鲁木齐时间 UTC+6 新疆地区实际使用的时间

✅ PHP 使用时区示例:

<?php
// 设置默认时区为北京时间
date_default_timezone_set('Asia/Shanghai');
echo "北京时间: " . date('Y-m-d H:i:s') . "\n";

// 乌鲁木齐时间示例
date_default_timezone_set('Asia/Urumqi');
echo "乌鲁木齐时间: " . date('Y-m-d H:i:s') . "\n";

// 比较两个时区的时间
$shanghai = new DateTime('now', new DateTimeZone('Asia/Shanghai'));
$urumqi = new DateTime('now', new DateTimeZone('Asia/Urumqi'));
echo "北京和乌鲁木齐时差: " . ($shanghai->getOffset() - $urumqi->getOffset())/3600 . "小时\n";
?>

✅ PHP 示例代码输出效果:

北京时间: 2025-07-15 12:34:56
乌鲁木齐时间: 2025-07-15 10:34:56
北京和乌鲁木齐时差: 2小时

国际主要城市时区

地区 时区标识 城市/地区 标准时间偏移 夏令时偏移
美洲 America/New_York 纽约 UTC-5 UTC-4
America/Chicago 芝加哥 UTC-6 UTC-5
America/Denver 丹佛 UTC-7 UTC-6
America/Los_Angeles 洛杉矶 UTC-8 UTC-7
America/Toronto 多伦多 UTC-5 UTC-4
America/Sao_Paulo 圣保罗 UTC-3 UTC-2 (部分区域)
欧洲 Europe/London 伦敦 UTC+0 UTC+1
Europe/Paris 巴黎 UTC+1 UTC+2
Europe/Berlin 柏林 UTC+1 UTC+2
Europe/Moscow 莫斯科 UTC+3 无夏令时
亚洲 Asia/Tokyo 东京 UTC+9 无夏令时
Asia/Seoul 首尔 UTC+9 无夏令时
Asia/Singapore 新加坡 UTC+8 无夏令时
Asia/Bangkok 曼谷 UTC+7 无夏令时
Asia/Dubai 迪拜 UTC+4 无夏令时
Asia/Kolkata 加尔各答 UTC+5:30 无夏令时
大洋洲 Australia/Sydney 悉尼 UTC+10 UTC+11
Australia/Melbourne 墨尔本 UTC+10 UTC+11
Pacific/Auckland 奥克兰 UTC+12 UTC+13
特殊时区 UTC 协调世界时 UTC+0
GMT 格林尼治标准时间 UTC+0
Etc/GMT+12 国际日期变更线西侧 UTC-12

✅ PHP 使用时区示例:

<?php
// 设置不同时区并显示时间
$timezones = [
    'America/New_York' => '纽约',
    'Europe/London' => '伦敦',
    'Asia/Tokyo' => '东京',
    'Australia/Sydney' => '悉尼',
    'UTC' => '协调世界时'
];

foreach ($timezones as $tz => $city) {
    date_default_timezone_set($tz);
    $dst = date('I') ? ' (夏令时)' : '';
    echo "{$city}时间({$tz}): " . date('Y-m-d H:i:s') . $dst . "\\n";
}

// 计算两个城市的时差
$ny = new DateTime('now', new DateTimeZone('America/New_York'));
$ldn = new DateTime('now', new DateTimeZone('Europe/London'));
$diff = $ny->getOffset() - $ldn->getOffset();
echo "\\n纽约和伦敦当前时差: " . ($diff / 3600) . "小时";
?>

✅ PHP 示例代码输出效果:

纽约时间(America/New_York): 2025-07-15 00:34:56 (夏令时)
伦敦时间(Europe/London): 2025-07-15 05:34:56 (夏令时)
东京时间(Asia/Tokyo): 2025-07-15 13:34:56
悉尼时间(Australia/Sydney): 2025-07-15 14:34:56 (夏令时)
协调世界时时间(UTC): 2025-07-15 04:34:56

获取完整列表的方法

// 获取所有支持的时区
$all_timezones = timezone_identifiers_list();

// 按地区分组获取
$asia_timezones = timezone_identifiers_list(DateTimeZone::ASIA);
$europe_timezones = timezone_identifiers_list(DateTimeZone::EUROPE);