PHP рдореЗрдВ рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ

рдЬреИрд╕реЗ рд╣реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЙрдкрднреЛрдХреНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрдВрдж рд╣реЛ рдЬрд╛рддреА рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдЖрд╡реЗрджрди рдХрд╛ рднреВрдЧреЛрд▓ рдмрдврд╝ рд░рд╣рд╛ рд╣реИ, рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИред рдЬрдм рдореИрдВрдиреЗ рдПрдХ рдкреНрд░рд╕рд┐рджреНрдз рдЗрдВрдЯрд░рдиреЗрдЯ рдХрдВрдкрдиреА рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛ , рддреЛ рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХреЛ рдХрд╛рдо рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ (рджреЛрдиреЛрдВ рдЖрдВрдХрдбрд╝реЗ рдкреНрд░рджрд░реНрд╢рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ) рдПрдХ рдЧрдВрднреАрд░ рдХрджрдо рдерд╛ред

рдЖрдЧреЗ рдХрд╛ рдЕрдиреБрд╡рд╛рдж :-)
рдкреЛрд╕реНрдЯ рдХрд░рдиреЗрд╡рд╛рд▓реЗ: Derick Rethans
рдпреВрдЖрд░рдПрд▓: www.derickrethans.nl/talks.php

рд╕рд╛рдордЧреНрд░реА


рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХреЗ рдореБрджреНрджреЗ
рд╕рдордп рдЕрдиреБрд╡рд╛рдж рдореБрджреНрджреЗ
рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХреА рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛рдПрдВ рдФрд░ "рддреАрд░ рдХрд╛ рдЕрдиреБрд╡рд╛рдж"
рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХреЗ рдирд╛рдо рдкрд░ рд╕рдорд╕реНрдпрд╛
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрд╝реЛрди рдХреЗ рдирд╛рдо рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рддрд╛рд░реАрдЦ рдФрд░ рд╕рдордп рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛
рд╕рдордп рдФрд░ рддрд┐рдерд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП php 4 рдФрд░ php 5 рдореЗрдВ рдХрд╛рд░реНрдп
рджрд┐рдирд╛рдВрдХ рдкреНрд░рддрд┐рдмрдВрдз
Php 5.1 рдФрд░ рдмрд╛рдж рдореЗрдВ рддрд╛рд░реАрдЦ рдореЗрдВ рд╕реБрдзрд╛рд░
Php 5.1 рдФрд░ рдЙрдЪреНрдЪрддрд░ рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рд╛рд░реВрдк
рдЕрдореЗрд░рд┐рдХреА рдкреНрд░рд╛рд░реВрдк: 9/11; 4: 08 рдмрдЬреЗ; 12/22/78; рд╕реБрдмрд╣ 8:51 рдмрдЬреЗ
рд╕рдВрдпреБрдХреНрдд рдкреНрд░рд╛рд░реВрдк: рд╕рдд, 24 рдЕрдкреНрд░реИрд▓ 2004 21:48:40 +0200; 2001-11-29T13: 20: 01.123-05: 00
рд╡рд░реНрдгрдирд╛рддреНрдордХ рд╕реНрд╡рд░реВрдк: рдХрд▓; рдЪрд╛рд░ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ; рдЕрдВрддрд┐рдо рд╢рдирд┐рд╡рд╛рд░; +20 рджрд┐рди 2 рдШрдВрдЯреЗ
рдкрд╛рда рдкреНрд░рд╛рд░реВрдк: 22 рджрд┐рд╕рдВрдмрд░ 1978; 22 рджрд┐рд╕рдВрдмрд░ 1978
рд╕рднреА рдЖрдИрдПрд╕рдУ 8601 рдкреНрд░рд╛рд░реВрдк: 1978/12/22; 13: 03: 12.45678; 13: 03: 12.45678 +0100; 15: 57-8; 1978/12/22; 15:57:41 рдкреАрдбреАрдЯреА; 13: 03: 12.45678 рд╕реЗрд╕реНрдЯ; 231431 CEST; 04/25/70; 13:03 CEST; 04:05 -0930; 23: 41 рдПрдл
рдбреЗрдЯрд╛рдмреЗрд╕ рдкреНрд░рд╛рд░реВрдк: 1999-рдЬрдирд╡рд░реА -08; 1999.238
Php 5.1 рдФрд░ рдЙрдЪреНрдЪрддрд░ рдореЗрдВ рдЯрд╛рдЗрдордЬрд╝реЛрди рд╕рдорд░реНрдерди
рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред рдХреИрд╕реЗ рдХрд░реЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓?
рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдмрджрд▓реЗрдВ
рдкрд╛рд░реНрд╕рд┐рдВрдЧ рджрд┐рдирд╛рдВрдХ (рдЕрддреАрдд)
рд╕реНрдЯреНрд░реЗрдЯреЛрдЯрд╛рдЗрдо рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджрд┐рдирд╛рдВрдХ рдФрд░ рд╕рдордп рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛
$ ts = strtotime ("2005-07-11 22:16:50 CEST");

рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
$ рддрд╛рд░реАрдЦ = рд╕реНрдЯреНрд░реЗрдЯреЛрдЯрд╛рдЗрдо ("2005-07-11 22:16:50 рд╕реЗрд╕реНрдЯ");
$ ts = strtotime ("рдЕрдЧрд▓реЗ рд╕рдкреНрддрд╛рд╣", $ рддрд╛рд░реАрдЦ);

рд╡рд╛рдкрд╕реА рдорд╛рди рдПрдХ 32-рдмрд┐рдЯ рдкреВрд░реНрдгрд╛рдВрдХ рд╣реИред
рдкрд╛рд░реНрд╕рд┐рдВрдЧ рджрд┐рдирд╛рдВрдХ (рднрд╡рд┐рд╖реНрдп)
Date_create рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджрд┐рдирд╛рдВрдХ рдФрд░ рд╕рдордп рдХреА рдЬрд╛рдирдХрд╛рд░реА рдпреБрдХреНрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛
"$ Ts = date_create (" 1978-12-22 09:15:50 ") ;;
рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдк DateTime рдХрд╛ рдкреНрд░рдХрд╛рд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ
$ ts = рдирдпрд╛ рджрд┐рдирд╛рдВрдХ рд╕рдордп ("1978-12-22 09:15:50");

рдпреЗ рдлрд╝рдВрдХреНрд╢рди рдЕрдм 32-рдмрд┐рдЯ рдкреВрд░реНрдгрд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ DateTime рд╡рд░реНрдЧ рдХреА рдПрдХ рд╡рд╕реНрддреБ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ, рдЬреЛ 64-рдмрд┐рдЯ рдкреВрд░реНрдгрд╛рдВрдХ рдкрд░ рдПрдХ рдЖрд╡рд░рдг рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
$ ts = рдирдпрд╛ рджрд┐рдирд╛рдВрдХ рд╕рдордп ("1978-12-22 09:15:50");
рдЧреВрдВрдЬ $ ts-> рдкреНрд░рд╛рд░реВрдк ('рдпреВ');
Date_parse рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛
$ рддрд╛рд░реАрдЦ = "22apr2006 8: 36: 14.43 # ^ рдпреВрд░реЛрдк / рдУрд╕реНрд▓реЛ рд╕реЗрд╕реНрдЯ";
$ t = date_parse ($ рддрд╛рд░реАрдЦ);
рдЗрдХреЛ $ t ['рд╡рд░реНрд╖']ред ''ред '' $ t ['рдорд╣реАрдирд╛']ред ''-' $ t ['рджрд┐рдирд╛рдВрдХ']ред '' ';
рдЗрдХреЛ $ t ['рдШрдВрдЯрд╛']ред ':'ред $ t ['рдорд┐рдирдЯ']ред ':' '$ t [' рджреВрд╕рд░рд╛ ']ред' ' ';
рдЗрдХреЛ $ t ['tz_id']; "\ n";

рджрд┐рдирд╛рдВрдХ рдкреНрд░рд╛рд░реВрдк
date_default_timezone_set ("рдпреВрд░реЛрдк / рдУрд╕реНрд▓реЛ");
$ ts = date_create ("1979-12-31 09:15");
echo date_format ($ ts, "D Ymd H: i: s - \ I \ S \ O \ W / \ Y: W / o");

рджрд┐рдирд╛рдВрдХ рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╕рднреА рдкреНрд░рд╛рд░реВрдк рд╕рдВрд╢реЛрдзрдХ рднреА рд╕рдорд░реНрдерд┐рдд рд╣реИрдВред
рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдкреНрд░рд╛рд░реВрдк:
date_default_timezone_set ("рдпреВрд░реЛрдк / рдУрд╕реНрд▓реЛ");
$ ts = date_create ("рджрд┐рд╕рдВрдмрд░ 22, 2005 15:41");
echo date_format ($ ts, DATE_ISO8601);
рдЗрдХреЛ рдбреЗрдЯ_рдлреЙрд░реНрдореИрдЯ ($ ts, рдбреЗрдЯрдЯрд╛рдЗрдо :: RFC1036);
echo date_format ($ ts, DATE_RSS);

Php6 рдореЗрдВ рд╕реНрдерд╛рди
date_default_timezone_set ("рдпреВрд░реЛрдк / рдУрд╕реНрд▓реЛ");
$ ts = date_create ("рджрд┐рд╕рдВрдмрд░ 22, 2005 15:41");
$ рд╕реНрдерд╛рди = рд╕рд░рдгреА ('en_US', 'fr_CA', 'nb_NO', 'ru_RU', 'ar_SA', 'ja_JP');
foreach ($ рд╕реНрдерд╛рди рдХреЗ рд░реВрдк рдореЗрдВ $ рд╕реНрдерд╛рди)
{
locale_set_default ($ locale);
echo date_format_locale ($ ts, DATE_RFC2822)ред "\ n";
}

рджрд┐рдирд╛рдВрдХ рдФрд░ рд╕рдордп рдЕрджреНрдпрддрди
$ рддрд╛рд░реАрдЦ = рдирдпрд╛ рджрд┐рдирд╛рдВрдХ рд╕рдордп ('рдЕрдм');
рдЗрдХреЛ $ рддрд┐рдерд┐-> рдкреНрд░рд╛рд░реВрдк (рджрд┐рдирд╛рдВрдХ рд╕рдордп :: ISO8601)ред "\ n";
$ рддрд╛рд░реАрдЦ-> рд╕реЗрдЯрдЯрд╛рдЗрдо (15,0,7);
рдЗрдХреЛ $ рддрд┐рдерд┐-> рдкреНрд░рд╛рд░реВрдк (рджрд┐рдирд╛рдВрдХ рд╕рдордп :: ISO8601)ред "\ n";
$ рддрд╛рд░реАрдЦ-> рд╕реЗрдЯрдбреЗрдЯ (2006,12,22);
рдЗрдХреЛ $ рддрд┐рдерд┐-> рдкреНрд░рд╛рд░реВрдк (рджрд┐рдирд╛рдВрдХ рд╕рдордп :: ISO8601)ред "\ n";
$ рджрд┐рдирд╛рдВрдХ-> рд╕реЗрдЯрдЖрдИрдбреЛрд╕рдбреЗрдЯ (2006,45,2);
рдЗрдХреЛ $ рддрд┐рдерд┐-> рдкреНрд░рд╛рд░реВрдк (рджрд┐рдирд╛рдВрдХ рд╕рдордп :: ISO8601)ред "\ n";

рддрд┐рдерд┐ рдФрд░ рд╕рдордп рдмрджрд▓реЗрдВ
date_default_timezone_set ("рдпреВрд░реЛрдк / рдУрд╕реНрд▓реЛ");
$ рддрд╛рд░реАрдЦ = рдирдпрд╛ рджрд┐рдирд╛рдВрдХ рд╕рдордп ('рдЕрдм');
рдЗрдХреЛ $ ts-> рдкреНрд░рд╛рд░реВрдк (DATE_RFC2822)ред "\ n";
$ ts-> рд╕рдВрд╢реЛрдзрд┐рдд ("+ 2 рджрд┐рди");
рдЗрдХреЛ $ ts-> рдкреНрд░рд╛рд░реВрдк (DATE_RFC2822)ред "\ n";
$ ts-> рд╕рдВрд╢реЛрдзрд┐рдд ("рдкрд╛рдВрдЪрд╡рд╛рдВ рдорд╣реАрдирд╛");
рдЗрдХреЛ $ ts-> рдкреНрд░рд╛рд░реВрдк (DATE_RFC2822)ред "\ n";
$ ts-> рд╕рдВрд╢реЛрдзрд┐рдд ("рд╢реБрдХреНрд░рд╡рд╛рд░ +3 рд╕рдкреНрддрд╛рд╣");
рдЗрдХреЛ $ ts-> рдкреНрд░рд╛рд░реВрдк (DATE_RFC2822)ред "\ n";
$ ts-> рд╕рдВрд╢реЛрдзрд┐рдд ("рдЕрдЧрд▓рд╛ рд╢реБрдХреНрд░рд╡рд╛рд░");
рдЗрдХреЛ $ ts-> рдкреНрд░рд╛рд░реВрдк (DATE_RFC2822)ред "\ n";

рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рджрд┐рдирд╛рдВрдХ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддреЗ рд╕рдордп рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╛рдо рд╕реЗрдЯ рдХрд░рдирд╛
$ ts = date_create ("1978-12-22 09:15 CEST");

рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╕рдВрдХреНрд╖рд┐рдкреНрддрд┐рдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрджрд╛рд╡рдирдд рд╣реИ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдпрд╛ рдкреВрд░реНрдг рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рд╕реЗрдЯ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ
$ ts = date_create ("1978-12-22 09:15 рдпреВрд░реЛрдк / рдУрд╕реНрд▓реЛ")

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рдордп рдХреНрд╖реЗрддреНрд░
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рдордп рдХреНрд╖реЗрддреНрд░ рд╕реЗрдЯ рдХрд░рдирд╛
date_default_timezone_set ("рдпреВрд░реЛрдк / рдУрд╕реНрд▓реЛ");
$ ts = date_create ("1978-12-22 09:15");
рдЧреВрдВрдЬ $ ts-> рдкреНрд░рд╛рд░реВрдк ('рдИ');

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
рдЗрдХреЛ рдбреЗрдЯ_рдбреЗрдлреЙрд▓реНрдЯ_рдЯрд╛рдЗрдордЬрд╝реЛрди_рдЧреЗрдЯ ();

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧред рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рдордп рдХреНрд╖реЗрддреНрд░
рдЯрд╛рдЗрдо рдЬрд╝реЛрди рдмрдирд╛рдПрдВ
$ tz = timezone_open ('рдПрд╢рд┐рдпрд╛ / рд╕рд┐рдВрдЧрд╛рдкреБрд░');

рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддреЗ рд╕рдордп рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
$ tz = timezone_open ('рдкреНрд░рд╢рд╛рдВрдд / рд╣реЛрдиреЛрд▓реВрд▓реВ');
$ ts = date_create ("1978-12-22 09:15 ', $ tz);

рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╛рд░ рдХрд┐рдП рдЧрдП рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХреЛ рдУрд╡рд░рд▓реИрдк рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ
$ tz = рдирдпрд╛ DateTimeZone ('рдкреНрд░рд╢рд╛рдВрдд / рд╣реЛрдиреЛрд▓реВрд▓реВ');
$ ts1 = рдирдпрд╛ рджрд┐рдирд╛рдВрдХ рд╕рдордп ('1978-12-22 09:15 CEST', $ tz);
$ ts2 = рдирдпрд╛ рджрд┐рдирд╛рдВрдХ рд╕рдордп ('1978-12-22 09:15 рдпреВрд░реЛрдк / рдПрдореНрд╕реНрдЯрд░реНрдбрдо', $ tz);
рдЗрдХреЛ $ t22-> рдкреНрд░рд╛рд░реВрдк (рджрд┐рдирд╛рдВрдХ рд╕рдордп :: RFC2822);

рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдирд╛рдо рд╣реЛ рд░рд╣рд╛ рд╣реИ
$ tz = timezone_open ('рдПрд╢рд┐рдпрд╛ / рд╕рд┐рдВрдЧрд╛рдкреБрд░');
рдЧреВрдВрдЬ timezone_name_get ($ tz);

$ tz = timezone_open ('CEST');
рдЧреВрдВрдЬ timezone_name_get ($ tz);

рдЧреНрд░реАрдирд╡рд┐рдЪ рд╕реЗ рд╡рд░реНрддрдорд╛рди рдСрдлрд╕реЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
$ tz = рдирдпрд╛ DateTimeZone (┬╗рдпреВрд░реЛрдк / рдПрдореНрд╕реНрдЯрд░реНрдбрдо");
$ d = рдирдпрд╛ рджрд┐рдирд╛рдВрдХ рд╕рдордп ("2005-01-22 09:15");
рдЗрдХреЛ $ tz-> getOffset ($ d);
$ d-> рд╕рдВрд╢реЛрдзрд┐рдд ("+ 6 рдорд╣реАрдиреЗ");
рдЗрдХреЛ $ tz-> getOffset ($ d);

рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧред рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдкрд░рд┐рд╡рд░реНрддрди
рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддреЗ рд╕рдордп рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
$ tz1 = timezone_open ('рдкреИрд╕рд┐рд╕рд┐рдХ / рд╣реЛрдиреЛрд▓реБрд▓реБ');
$ tz2 = timezone_open ('рдпреВрд░реЛрдк / рдПрдореНрд╕реНрдЯрд░реНрдбрдо');
$ tz3 = timezone_open ('рдСрд╕реНрдЯреНрд░реЗрд▓рд┐рдпрд╛ / рдореЗрд▓рдмреЛрд░реНрди');

$ ts = date_create ("1978-12-22 09:15", $ tz1);
рдЗрдХреЛ $ ts-> getTimezone () -> getName ()ред ':'ред $ ts-> рдлреЙрд░реНрдореЗрдЯ (DATE_RFC822) "\ n";
$ ts-> setTimezone ($ tz2);
рдЗрдХреЛ $ ts-> getTimezone () -> getName ()ред ':'ред $ ts-> рдлреЙрд░реНрдореЗрдЯ (DATE_RFC822) "\ n";
$ ts-> setTimezone ($ tz3);
рдЗрдХреЛ $ ts-> getTimezone () -> getName ()ред ':'ред $ ts-> рдлреЙрд░реНрдореЗрдЯ (DATE_RFC822) "\ n";

рдЯрд╛рдЗрдо рдЯреНрд░рд╛рдВрд╕рд▓реЗрд╢рди рдЯреЗрдмрд▓реНрд╕
$ tz = timezone_open ('рдпреВрд░реЛрдк / рдПрдореНрд╕реНрдЯрд░реНрдбрдо');
$ trs = timezone_transitions_get ($ tz); // рдпрд╛ $ trs = $ tz-> getTransitions ();
foreach ($ ts $ ts рдХреЗ рд░реВрдк рдореЗрдВ)
рдкреНрд░рд┐рдВрдЯрдл ("% 20s% 7d% d% s \ n", $ tr ['рд╕рдордп'], $ tr ['рдСрдлрд╕реЗрдЯ'], $ tr ['isdst'], $ tr ['abbr'];

рд╕рдВрдХреЗрддрд╛рдХреНрд╖рд░ рдФрд░ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛
рд╕рднреА рд╕рдорд░реНрдерд┐рдд рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
$ id = timezone_identifiers_list ();
рдЗрдХреЛ "рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛:" .count ($ ids)ред "\ n";
рдЗрдХреЛ рдЗрдВрдХреЛрдб (",", array_slice ($ id, 0, 5))ред'.. ''ред implode (",", array_slice ($ ids, -5));

рд╕рднреА рд╕рдорд░реНрдерд┐рдд рд╕рдВрдХреНрд╖рд┐рдкреНрддрд╛рдХреНрд╖рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
$ abbrs = timezone_ablookations_list ();
foreach ($ abbrs $ abbr => $ ids рдХреЗ рд░реВрдк рдореЗрдВ)
foreach ($ id рдХреЗ рд░реВрдк рдореЗрдВ $ id)
рдкреНрд░рд┐рдВрдЯрдл ("% - 6s% 6d% d% s \ n", рд╕реНрдЯреНрд░рдЯреЙрдкрд░ ($ abbr), $ id ['рдСрдлрд╕реЗрдЯ'], $ id ['dst'], $ id ['timezone_id']];

рдЕрдиреБрд╡рд╛рдж рдХрд╛ рддреАрд░ред рдЕрдЧрд▓рд╛ рдХрдм рд╣реЛрдЧрд╛?
date_default_timezone_set ("рдЕрдореЗрд░рд┐рдХрд╛ / New_york");
$ tz = рдирдпрд╛ DateTimeZone ("рдЕрдореЗрд░рд┐рдХрд╛ / New_york");
foreach (timezone_transitions_get ($ tz) $ tr рдХреЗ рд░реВрдк рдореЗрдВ)
if ($ tr ['ts']> рд╕рдордп ()) рд╡рд┐рд░рд╛рдо;
$ d = рдирдпрд╛ DateTime ("@ {$ tr ['ts']}");
printf ("рд╕рдордпрдХреНрд╖реЗрддреНрд░% s% s рдкрд░% s рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд░рддрд╛ рд╣реИред \ n рдирдпрд╛ GMT рдСрдлрд╝рд╕реЗрдЯ рд╣реЛрдЧрд╛:% d (% s) \ n", $ tz-> getName (), $ tr ['isdst']? " DST ":" рдорд╛рдирдХ рд╕рдордп ", $ d-> рдкреНрд░рд╛рд░реВрдк ('d MY @ H: i T'), $ tr ['рдСрдлрд╕реЗрдЯ'], $ tr ['abbr']);

рдЬрдм рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ
Php 5.1 рдореЗрдВ, рдЖрдкрдХреЛ рдзреНрд╡рдЬ CFLAGS = -DEXPERIMENTAL_DATE_SUPPORT = 1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдХрд▓рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛
Php 5.2 рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рдж рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ

рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдпрд╣рд╛рдБ рдкреНрд░рдХрд╛рд╢рд┐рдд

Source: https://habr.com/ru/post/In19838/


All Articles