使用PHP获取特定时间的时区

使用PHP获取特定时间的时区,php,datetime,timezone,Php,Datetime,Timezone,我想知道是否有一种方法可以使用PHP生成特定时间的所有当前时区的列表 例如,当前时间为09:00的所有全局位置 PHP是否也会自动计算夏令时 我在这里或其他网站上看到的任何东西都是倒计时或显示每个时区。我只希望代码在设定的时间吐出这些代码,并忽略其他代码,直到它在指定的时间出现。您可以尝试类似的方法 创建一个表示当前瞬间的DateTime实例 遍历PHP知道的所有时区 筛选与您的条件相匹配的当前格式化时间的时区列表 假设您希望所有区域的当前时间为上午9点(所以09:00到09:59之间的任何时间

我想知道是否有一种方法可以使用PHP生成特定时间的所有当前时区的列表

例如,当前时间为
09:00
的所有全局位置

PHP是否也会自动计算夏令时


我在这里或其他网站上看到的任何东西都是倒计时或显示每个时区。我只希望代码在设定的时间吐出这些代码,并忽略其他代码,直到它在指定的时间出现。

您可以尝试类似的方法

  • 创建一个表示当前瞬间的
    DateTime
    实例
  • 遍历PHP知道的所有时区
  • 筛选与您的条件相匹配的当前格式化时间的时区列表
  • 假设您希望所有区域的当前时间为上午9点(所以09:00到09:59之间的任何时间)

    演示~


    如果您想获得一个没有国家/地区前缀的区域标识符列表,请尝试以下操作

    $shortZones = array_map(function($tz) {
        // Turn "_" to " " and return the last part after "/"
        return str_replace('_', ' ', substr(strstr($tz, '/'), 1));
    }, $zones);
    

    我可能会这样做:1。以UTC为单位获取当前时间。取我想要的时间,比如说
    0930
    ,然后从当前UTC时间中减去它,这将给出时区的UTC偏移量(+/-一些hhmm值),然后可以将其传递到
    DateTimeZone
    对象的偏移量中,并使用
    getName()
    members@Phil有没有办法把这个区域剥离出来,让这座城市继续存在?例如,从“太平洋/斐济”到“斐济”…@MichaelMarchment当然,但它不会是一个时区,一些结果会令人困惑。我将添加一个示例anyway@MichaelMarchment不确定使用jQuery:$('.locality li:contains(“America/North_Dakota/Center”))对类似于
    America/North_Dakota/Center
    的区域执行什么操作。text(“Center”):D
    $shortZones = array_map(function($tz) {
        // Turn "_" to " " and return the last part after "/"
        return str_replace('_', ' ', substr(strstr($tz, '/'), 1));
    }, $zones);