Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 时区偏移大于12小时意味着什么?_Php_Datetime_Timezone_Utc_Timezone Offset - Fatal编程技术网

Php 时区偏移大于12小时意味着什么?

Php 时区偏移大于12小时意味着什么?,php,datetime,timezone,utc,timezone-offset,Php,Datetime,Timezone,Utc,Timezone Offset,MySQL仅在这八个时区被mygetOffset()函数的输出阻塞 时区偏移大于12小时意味着什么?您建议如何修改以使$os保持在+/-12小时之间 function getOffset() { $os=(new \DateTime())->getOffset(); return $os >= 0?'+'.gmdate("G:i", $os):'-'.gmdate("G:i", -$os); } foreach(DateTimeZone::listIdentifi

MySQL仅在这八个时区被my
getOffset()
函数的输出阻塞

时区偏移大于12小时意味着什么?您建议如何修改以使
$os
保持在+/-12小时之间

function getOffset() {
    $os=(new \DateTime())->getOffset();
    return $os >= 0?'+'.gmdate("G:i", $os):'-'.gmdate("G:i", -$os);
}


foreach(DateTimeZone::listIdentifiers() as $tz) {
    date_default_timezone_set($tz);
    $os=getOffset();
    $hours=explode(':',$os)[0];
    if($hours>12 || $hours<-12) {
        echo("$tz has offset of $os.<br>");
    }
}

. 你一定会爱上甲骨文,他们会毁掉一切:)@AlexKarshin
Pacific/Kiritimati
实际上就是我最初偶然发现的那个!那么,大于13小时是有效的,但MySQL不支持吗?顺便说一下,我用的是MariaDB。仍然很好奇超过12小时意味着什么,但实际上这是一个不同论坛的问题。我猜解决办法是减去24小时。一天有24小时。表单偏移量0您最多可以提前12小时或延迟12小时。所以+13与-11相同。@Juan-11与+13不同。这是因为“国际日期线”的日期变化。。。23:00 GMT-11小时仍然是同一天,但23:00 GMT+13是第二天。。。请看一看基里蒂马蒂人所在的地图。@Zimmi你是对的,尽管它似乎是通过将偏移量-10和-11替换为+13和+14而人为引入的。
Antarctica/McMurdo has offset of +13:00.
Pacific/Apia has offset of +14:00.
Pacific/Auckland has offset of +13:00.
Pacific/Chatham has offset of +13:45.
Pacific/Enderbury has offset of +13:00.
Pacific/Fakaofo has offset of +13:00.
Pacific/Kiritimati has offset of +14:00.
Pacific/Tongatapu has offset of +13:00.