<span><span><span class="hljs-title function_ invoke__">timezone_name_from_abbr</span></span><span>(</span><span><span class="hljs-string">"XYZ"</span></span><span>); </span><span><span class="hljs-comment">// false</span></span><span>
</span></span>
Es wird empfohlen, die Schreibweise der Abkürzung zu überprüfen oder die von PHP bereitgestellte DateTimeZone :: Listabbrevication () zu verwenden.
Mehrdeutigkeit, aber kein Offset wird <br> zur Verfügung gestellt Zum Beispiel entspricht "CST" sowohl der zentralamerikanischen als auch der chinesischen Standardzeit. Wenn $ gmtOffset unklar ist, kann die Funktion falsch zurückgeben.
Parameterfehlanpassung in Tageslichtsparenzeit
Wenn der Parameter $ isdst nicht mit der tatsächlichen Situation übereinstimmt, kann dies auch dazu führen, dass die Funktion nicht mit der richtigen Zeitzone übereinstimmt.
PHP -Version oder Zeitzone Datenbankdifferenz <br> Unterschiedliche PHP -Versionen können unterschiedliche Abkürzungsunterstützung haben. Wenn FALSE zurückgegeben wird, müssen Sie auch bestätigen, ob die PHP TimeZone -Datenbank auf dem neuesten Stand ist.
<span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-title class_">DateTimeZone</span></span><span>::</span><span><span class="hljs-title function_ invoke__">listAbbreviations</span></span><span>());
</span></span>
Der Ausgang kann bestätigen, ob die verwendete Abkürzung und der entsprechende Versatz vorhanden ist.
<span><span><span class="hljs-variable">$tz</span></span><span> = </span><span><span class="hljs-title function_ invoke__">timezone_name_from_abbr</span></span><span>(</span><span><span class="hljs-string">"CST"</span></span><span>, </span><span><span class="hljs-number">8</span></span><span>*</span><span><span class="hljs-number">3600</span></span><span>); </span><span><span class="hljs-comment">// entsprechen Asia/Shanghai</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$tz</span></span><span>; </span><span><span class="hljs-comment">// Ausgabe "Asia/Shanghai"</span></span><span>
</span></span>
Verwenden Sie Offsets, um Unklarheiten zu vermeiden.
<span><span><span class="hljs-variable">$tz</span></span><span> = </span><span><span class="hljs-title function_ invoke__">timezone_name_from_abbr</span></span><span>(</span><span><span class="hljs-string">"EST"</span></span><span>, -</span><span><span class="hljs-number">5</span></span><span>*</span><span><span class="hljs-number">3600</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>); </span><span><span class="hljs-comment">// Überlegungen zur Sommertageszeit</span></span><span>
</span></span>
Wenn die Tagesrettungszeit existiert, kann der Versuch, innerhalb eines Jahres zu bestehen, zu dem richtigen Ergebnis führen.
Wenn die Abkürzungsübereinstimmung instabil ist, können Sie den Namen der Vollzeitzonen direkt verwenden:
<span><span><span class="hljs-variable">$dtz</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">DateTimeZone</span></span><span>(</span><span><span class="hljs-string">"Asia/Shanghai"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$dtz</span></span><span>-></span><span><span class="hljs-title function_ invoke__">getName</span></span><span>();
</span></span>
<span><span>php -r </span><span><span class="hljs-string">'echo timezone_version_get();'</span></span><span>
</span></span>
Stellen Sie sicher, dass die Zeitzonendatenbank auf die neuesten Akten aktualisiert wird, und vermeiden Sie, dass einige Abkürzungen nicht erkannt werden.