@@ -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