Skip to content

Commit 1468660

Browse files
Merge pull request #8329 from Sesquipedalian/2.1/tz_update
Support recent change in tzdb to use %z for abbreviations
2 parents e0b5174 + 76c93ed commit 1468660

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

other/update_timezones.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1944,7 +1944,7 @@ private function build_timezone_transitions(bool $rebuild = false): void
19441944
$time = $entry_start->format('Y-m-d\TH:i:sO');
19451945
$offset = $std_offset;
19461946
$isdst = false;
1947-
$abbr = sprintf($entry['format'], 'S');
1947+
$abbr = $entry['format'] === '%z' ? sprintf("%+03d", strtr($offset, [':00' => '', ':' => ''])) : sprintf($entry['format'], 'S');
19481948
$save = 0;
19491949
$unadjusted_date_string = $unadjusted_date_strings['entry_start'];
19501950

@@ -1982,7 +1982,7 @@ private function build_timezone_transitions(bool $rebuild = false): void
19821982
$time = $entry_start->format('Y-m-d\TH:i:sO');
19831983
$offset = $std_offset + $rules_offset;
19841984
$isdst = true;
1985-
$abbr = sprintf($entry['format'], 'D');
1985+
$abbr = $entry['format'] === '%z' ? sprintf("%+03d", strtr($offset, [':00' => '', ':' => ''])) : sprintf($entry['format'], 'D');
19861986
$save = $rules_offset;
19871987
$unadjusted_date_string = $unadjusted_date_strings['entry_start'];
19881988

@@ -2108,7 +2108,7 @@ private function build_timezone_transitions(bool $rebuild = false): void
21082108
$time = $transition_date->format('Y-m-d\TH:i:sO');
21092109
$offset = $std_offset + $save_offset;
21102110
$isdst = $save_offset != 0;
2111-
$abbr = sprintf($entry['format'], $info['letter'] === '-' ? '' : $info['letter']);
2111+
$abbr = $entry['format'] === '%z' ? sprintf("%+03d", strtr($offset, [':00' => '', ':' => ''])) : (sprintf($entry['format'], $info['letter'] === '-' ? '' : $info['letter']));
21122112
$save = $save_offset;
21132113
$unadjusted_date_string = $info['unadjusted_date_string'];
21142114

@@ -2514,7 +2514,7 @@ private function get_distance_from($this_zone, $from_zone): float
25142514
*/
25152515
private function rewrite_date_string(string $date_string): string
25162516
{
2517-
$month = 'Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec';
2517+
$month = 'Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sept?(?:ember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?';
25182518
$weekday = 'Sun|Mon|Tue|Wed|Thu|Fri|Sat';
25192519

25202520
$replacements = array(

0 commit comments

Comments
 (0)