Avaleht
uus teema   vasta Tarkvara »  WWW »  php ajavööndiga (timezone) jama märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
poroloon
HV kasutaja
poroloon

liitunud: 25.07.2010




sõnum 01.04.2011 14:51:11 php ajavööndiga (timezone) jama vasta tsitaadiga

panin kodukale valiku et kõikjalt maailmast saaks igaüks näha kodulehe sissekannete kellaaegasid oma kohaliku aja järgi.
date_default_timezone_set("Europe/Tallinn");
Toimib. Proovisin mitut linna nagu Vienna, London, Paris -- toimib.
Aga probleem tekkis, kui tahtsin proovida America/New_York või Asia/Manila.
Esimene annab Eesti kell 2:40pm ajal 9:40pm!
Teine annab samal ajal 9:40am!
Tokyo annab 8:40am!
Miks ta kõik negatiivseks muudab?! icon_eek.gif
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Redikate
HV veteran
Redikate

liitunud: 30.12.2005




sõnum 03.04.2011 01:45:18 vasta tsitaadiga

E: minu paha. Järgminekord loen täpsemalt icon_idea.gif

Ära pikka viha pea. beer_yum.gif thumbs_up.gif

_________________
http://nodejs.org/
"I'm also a person. Programming is just one thing I do."


viimati muutis Redikate 03.04.2011 20:54:26, muudetud 1 kord
Kommentaarid: 34 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 33
tagasi üles
vaata kasutaja infot saada privaatsõnum
poroloon
HV kasutaja
poroloon

liitunud: 25.07.2010




sõnum 03.04.2011 10:02:05 vasta tsitaadiga

Redikate kirjutas:
Sellepärast et New York ja Manila on erinevates maailma otsates?

Naljamees krt!
Loe uuesti üle, milles probleem on. Kui ma vaatan õiget ajavööndite tabelit ja kellaaegu, siis on NY meist 7 tundi taga ja Hong Kong hetkel meist 5 tundi ees! Aga PHP annab mulle tulemuse, nagu oleks NY 7 tundi ees ja HK oleks 5 tundi taga! thumbs_down.gif
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 03.04.2011 10:27:55 vasta tsitaadiga

poroloon, näitad koodi millega proovisid?
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
poroloon
HV kasutaja
poroloon

liitunud: 25.07.2010




sõnum 03.04.2011 13:10:04 vasta tsitaadiga

mikk36 kirjutas:
poroloon, näitad koodi millega proovisid?


Kõigepealt valitakse ajavöönd sellise koodiga:

<select id="timezone" name="timezone">
<?php
$timezone_identifiers = DateTimeZone::listIdentifiers();
foreach($timezone_identifiers as $value)
{
    if(preg_match('/^(America|Antartica|Arctic|Asia|Atlantic|Europe|Indian|Pacific)\//', $value))
    {
      $value2 = str_replace("_"," ",$value);
       echo '<option value="'.$value.'">'.str_replace("/"," &raquo; ",$value2).'</option>';
    }
}
?>
</select>


Valin "Europe >> Tallinn", see annab läbi selle koodi andmebaasi sisestamiseks (db koodi pole siin praegu) näiteks "Europe/Tallinn" jne.

Ja kõik see siis pannakse kehtima sellega:

date_default_timezone_set(stripslashes($arr["timezone"]));

$arr["timezone"] võetakse andmebaasist sinna varem ülaltoodud koodiga sisestatud väärtus, näiteks kasvõi "Asia/Hong_Kong" vms.
Tulemus peaks siis olema nagu need:

date_default_timezone_set(stripslashes("Europe/Tallinn"));
date_default_timezone_set(stripslashes("Asia/Hong_Kong"));

Kuid miskipärast tulemus on selline, et Hong Kong on meist 5 tundi TAGA. icon_eek.gif
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 03.04.2011 13:51:26 vasta tsitaadiga

php:
  1. echo date_default_timezone_get()."\n";
  2. echo date('Y.m.d H:i:s')."\n";
  3. date_default_timezone_set("Asia/Hong_Kong");
  4. echo date_default_timezone_get()."\n";
  5. echo date('Y.m.d H:i:s')."\n";
Annab tulemuseks:
Europe/Tallinn
2011.04.03 13:50:37
Asia/Hong_Kong
2011.04.03 18:50:37
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
poroloon
HV kasutaja
poroloon

liitunud: 25.07.2010




sõnum 03.04.2011 17:53:01 vasta tsitaadiga

mikk36 kirjutas:
Annab tulemuseks:
Europe/Tallinn
2011.04.03 13:50:37
Asia/Hong_Kong
2011.04.03 18:50:37


Sel juhul peab midagi valesti olema minu serveris, sest mul annab Hong Kong hetkel tulemuseks 12:50 (Eesti aeg sel hetkel oli 17:50)
Täpselt valepidi. icon_rolleyes.gif
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 03.04.2011 17:53:34 vasta tsitaadiga

Samad käsud samas järjekorras annavad vale tulemuse?
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
poroloon
HV kasutaja
poroloon

liitunud: 25.07.2010




sõnum 04.04.2011 10:59:05 vasta tsitaadiga

jah, oli valesti.
Millegipärast nüüd muutus õigeks, kui olin vanema php.ini (varukoopia) taastanud... imelik.
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  WWW »  php ajavööndiga (timezone) jama
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.