php f-ja date()

php f-ja date()

offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3745
  • Gde živiš: 127.0.0.1

Jel moze neko da mi objasni zasto f-ja date() na dva razlicita servera vraca dva razlicita rezultata, sa istim parametrima?

<?php    echo date("d/m/Y H:i",1254966227); ?>

na serveru A vraca: 07/10/2009 18:43, a na serveru B: 08/10/2009 03:43.

Mislim, jeste razlika izmedju lokalnih vremena na ta dva servera 9 sati, ali kakve to veze ima kad se prosledi i drugi parametar?



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

Razlika u vremenskim zonama.



offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3745
  • Gde živiš: 127.0.0.1

Napisano: 07 Okt 2009 20:07

Bobby, izmenio sam poruku dok si ti kucao. Palo mi je to na pamet, ali nije. Zasto? Funkcija date() ima dva parametra - prvi, obavezni, format izlaznog datuma, i drugi, opcioni, timestamp (koliko je sekundi proslo od 1.1.1970 00:00:00 GMT).

Kada se drugi parametar izostavi, onda se podrazumeva da zelis trenutno vreme. Medjutim, AKO upises drugi parametar, onda je to toliko-i-toliko sekundi od 1.1.1970 00:00:00 GMT, pa vremenska zona ne moze da dodje do uticaja.

Dopuna: 07 Okt 2009 21:21

Sad sam malo kopao po serveru, i jos vise se zacudio GUZ - Glavom U Zid naime, problem sa datumom se pojavljuje kod citanja RSS sadrzaja. U trenutku povlacenja, za neki sadrzaj dobijem pubDate Wed, 7 Oct 2009 18:43:47 +0100, koji parsujem i pretvorim u timestamp 1254966227 (i provere radi, vratim sa f-jom date() u normalan datum - 07/10/2009 18:43).

Sve te podatke zapisem u bazu, zajedno sa "problematicnim" timestamp-om, i kad kasnije te podatke izvucem iz baze, timestamp 1254966227 sada vraca 08/10/2009 03:43, iako je pre upisa u bazu isti timestamp vracao 07/10/2009 18:43.

Kakvi su ovo gremlini?

offline
  • PHP Developer
  • Pridružio: 02 Okt 2005
  • Poruke: 546

jel isti broj tajmstamap i kad ga izvuces iz baze
da nema veze sa ovim
TIMESTAMP values are converted from the current time zone to UTC for storage, and converted back from UTC to the current time zone for retrieval.
http://dev.mysql.com/doc/refman/5.0/en/timestamp.html

offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3745
  • Gde živiš: 127.0.0.1

Nema veze ni sa tim (valjda), jer mi je kolona u bazi int(11) GUZ - Glavom U Zid inace, timestamp je uvek i svuda isti, samo sto f-ja date() vraca razlicite rezultate.

Za sad sam napravio workaround, f-ju late() koja ima 3 parametra - format, timestamp i "kasnjenje" Wink

offline
  • igor86  Male
  • Stručni saradnik
    Web programiranje
  • Pridružio: 24 Maj 2006
  • Poruke: 1633

probaj ovako
<?php    echo date("d/m/Y H:i",1254966227+date('Z')); ?>

Ko je trenutno na forumu
 

Ukupno su 1017 korisnika na forumu :: 44 registrovanih, 7 sakrivenih i 966 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., aleksmajstor, Alibaba1981, Apok, aramis s, BlekMen, Boris90, Brana01, bufanje, darkangel, dmdr, draganca, Dukelander, FOX, Frunze, Georgius, kairos, Kibice, Kubovac, kybonacci, ladro, laurusri, ljuba, M1los, manda87, Marko.anticc, menges, mihajlo.hrin, milenko crazy north, Motocar, nemkea71, opt1, sasa87, sickmouse, sombrero, Steeeefan, VJ, voja64, YU-UKI, zdrebac, Zerajic, zillbg, Čivi, 79693