Autor | Zpráva | ||
---|---|---|---|
jan99 Profil * |
#1 · Zasláno: 18. 12. 2014, 20:24:40
Ahoj, potrebuju aby funkce getOffset() vracela spravny UTC offset.
Tedka $user_timezone_offset vrací vysledek 3600 coz je spatne. Vysledek má být -60! viz. http://www.w3schools.com/jsref/jsref_gettimezoneoffset.asp $CountryTZ = 'Europe/Prague'; $user_localtime = new DateTime("now", new DateTimeZone($CountryTZ)); $user_timezone_offset = $user_localtime->getOffset(); Porad na to nemuzu prijit (ikdyz ve finale vydelim 3600 sec. 60ti, porad to není mínus 60 ale jen 60 coz je taky spatne). Díky moc |
||
Alphard Profil |
Jsme v časovém pásmu + 1 hodina, tak kolik je to sekund? Co má podle vás reprezentovat 60 sekund, kterých se snažíte dosáhnout? Zřejmě je to 60 minut, - závisí na pořadí operandů.
Viz oficiální dokumentace php.net/manual/en/datetime.getoffset.php Ta vaše stránka se týká js, udělejte mezi tím převod. |
||
jan99 Profil * |
#3 · Zasláno: 18. 12. 2014, 21:33:43
Alphard:
Tomu nerozumím. Prostě výsledek z PHP a javascriptu by měl být stejný. (Tedy z js -60 (což je správně) a -60 z PHP kódu). Teď PHP vrací 3600, takže logicky musím PHP kód upravit tak aby vracel stejnou hodnotu což je -60. Taže otázka zní jak upravit PHP kód aby vracel stejnou hodnotu jako JS. Ps. ta hodnota 60 není v sekundách ale v minutách, u nás zimní čas UTC+1 = 60min ;-) Díky |
||
Jan Tvrdík Profil |
#4 · Zasláno: 18. 12. 2014, 23:26:37
jan99:
Kde je problém? Prostě tu PHP hodnotu viděl -60, ne? |
||
jan99 Profil * |
#5 · Zasláno: 19. 12. 2014, 11:01:29
Jan Tvrdík:
Někdy si připadám fakt zabedněný. Nějak jsem si vsugeroval že zimní čas musí vracet -60 a letní +120 a ono to má být -120. Proto mi to nějak pořád nevycházelo. Díky za tip, teď jsem si to uvědomil. |
||
juriad Profil |
#6 · Zasláno: 19. 12. 2014, 11:35:59
jan99:
Obecně Česká republika je posunutá na východ (tedy směrem k místu, kde vychází slunce). Danou hodinu tedy bude mít dříve než země na západě. Můžeš tedy uvažovat o definici rozdílu času. Totiž, že za výchozí čas budeš považovat buď ten lokání nebo ten univerzální. Univerzální čas není ovlivněn žádnými letními/zímními posuny. A je definován jako shodný s Londýnským časem (v zimě). Tedy bv okamžiku, kdy doma máme dvanáct hodin, je v Londýně 11, a univerzální čas má 10 nebo 11 (podle ročního období). Otázkou je, zda jsme 60 minut napřed (+60) nebo je univerzální čas 60 minut pozadu (-60). Obvykle se uvažuje, že jsme +60 nebo +120 minut napřed, tedy výchozí je ten univerzální. Ty máš nejspíš problém v tom, že některá funkce vrací posun lokálního času vůči univerzálnímu a jiná vrací posun univerzálního vůči lokálnímu. |
||
Časová prodleva: 9 let
|
0