Date/Time: Minor tweak to support deprecated timezones on General Settings screen.

Underneath the timezone selector on the General Settings screen, a small snippet of info about the selected time zone is displayed.

This information would be missing if the timezone is set to a deprecated timezone value, even though PHP is perfectly capable of generating that information, including for deprecated timezones.

By passing the `DateTimeZone::ALL_WITH_BC` constant as the `$timezoneGroup` parameter to the PHP native `timezone_identifiers_list()` function, a timezone name list is retrieved containing both current and deprecated timezone names, preventing the condition from failing when the current timezone is a deprecated one.

See the extensive write-up about this in ticket #56468.

Also see: [https://www.php.net/manual/en/datetimezone.listidentifiers.php PHP Manual: timezone_identifiers_list()].

Note: As this is an admin/output page, no pre-existing tests are available.

Follow-up to [54207], [54217], [54227], [54229], [54230], [54232], [54233].

Props jrf, costdev, marcyoast.
See #56468.

git-svn-id: https://develop.svn.wordpress.org/trunk@54237 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Sergey Biryukov
2022-09-20 01:37:59 +00:00
parent 39e5879e99
commit 3beda5b203

View File

@@ -285,7 +285,7 @@ if ( empty( $tzstring ) ) { // Create a UTC+- zone if no timezone string exists.
?>
<br />
<?php
if ( in_array( $tzstring, timezone_identifiers_list(), true ) ) {
if ( in_array( $tzstring, timezone_identifiers_list( DateTimeZone::ALL_WITH_BC ), true ) ) {
$transitions = timezone_transitions_get( timezone_open( $tzstring ), time() );
// 0 index is the state at current time, 1 index is the next transition, if any.