时区列表理解



目前我有一个从 php $tzlist = DateTimeZone::listIdentifiers(DateTimeZone::ALL);获取的时区列表,其中包含 400+ 个时区,有什么办法可以使用这些时区列表而不是那个庞大的列表。

我们要做的是为要显示的每个时区选择一个"代表性"时区。因此,我们的下拉列表如下所示:

<select>
    <option value="America/New_York">US Eastern Time</option>
    <option value="America/Los_Angeles">US Pacific Time</option>
    <option value="Asia/Tokyo">Japan Standard Time</option>
    <option value="Australia/Sydney">Australia Eastern Time</option>
</select>

value部分是我们保存到用户数据库中的内容,但他们根据他们可能熟悉的"更好"的名称进行选择。这也比 GMT 偏移量效果更好,因为它会自动考虑夏令时等因素。

另一个潜在的选择是让用户先选择一个国家/地区。如果这样做,则可以将第二个可选参数传递给listIdentifiers

DateTimeZone::listIdentifiers(DateTimeZone::PER_COUNTRY, 'AU')

这会将输出限制为该国家/地区的有效时区:

[
    "Antarctica/Macquarie",
    "Australia/Adelaide",
    "Australia/Brisbane",
    "Australia/Broken_Hill",
    "Australia/Currie",
    "Australia/Darwin",
    "Australia/Eucla",
    "Australia/Hobart",
    "Australia/Lindeman",
    "Australia/Lord_Howe",
    "Australia/Melbourne",
    "Australia/Perth",
    "Australia/Sydney",
]

有些甚至会让你很容易,只吐出一个时区,这会让你非常准确地猜测用户可能正在使用哪个时区......

DateTimeZone::listIdentifiers(DateTimeZone::PER_COUNTRY, 'FR')
[
    "Europe/Paris",
]

相关内容

  • 没有找到相关文章

最新更新