Autor Zpráva
jan99
Profil *
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 *
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
jan99:
Kde je problém? Prostě tu PHP hodnotu viděl -60, ne?
jan99
Profil *
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
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: