Autor | Zpráva | ||
---|---|---|---|
uestla Profil |
#1 · Zasláno: 25. 12. 2010, 03:51:16 · Upravil/a: uestla
Dobré předráno.
Pokouším se vyřešit následující problém: Přes last.fm API si z jejich serveru tahám XML, které následně parsuji, což není podstatné. Podstata problému je v tom, že časy od nich dostávám v pásmu UTC, tj. $time = '25 Dec 2010, 02:45'; přičemž ve své aplikaci mám v PHP nastavenu střední Evropu (tj. o 1 hodinu víc): date_default_timezone_set("Europe/Prague"); Je nějaký rozumný způsob, jak tento rozdíl srovnat, abych zároveň nemusel nikde psát natvrdo hodinu (tj. aby se to chovalo pružně při pozdější změně zóny v PHP)? Zatím to řeším nehezky takto: strtotime($time) + 3600; Děkuji předem za případné reakce. |
||
Majkl578 Profil |
#2 · Zasláno: 25. 12. 2010, 04:35:42 · Upravil/a: Majkl578
Myslím, že nejjednodušší to bude asi pomocí DateTime:
$time = '25 Dec 2010, 02:45'; $dt = new \DateTime($time, new \DateTimeZone('UTC')); // místo výchozí zóny se použije UTC $dt->setTimezone(new \DateTimeZone('Europe/Prague')); // změna z UTC na naši zónu var_dump($dt->format('d.m.Y H:i:s')); // test |
||
uestla Profil |
#3 · Zasláno: 25. 12. 2010, 11:14:48
Pomohlo, děkuji!
Ještě pro mírný refactoring jsem použil $dt->setTimeZone(new DateTimeZone(date_default_timezone_get())) Při pozdějších změně časové zóny PHP nebudu muset projíždět kód aplikace :-) |
||
Časová prodleva: 13 let
|
0