Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> data
kufalo
post
Post #1





Grupa: Zarejestrowani
Postów: 251
Pomógł: 2
Dołączył: 24.08.2005

Ostrzeżenie: (0%)
-----


  1. <?=date('d.m.Y H:i.s',$t=time()).'<br>'?>
  2. <script>
  3.  x=new Date(<?=$t?>000)
  4.  x=x.getDate()+'.'+(x.getMonth()+1)+'.'+x.getFullYear()+' '+x.getHours()+':'+x.getMinutes()+'.'+x.getSeconds()
  5.  document.write(x)
  6. </script>


Nie wiem za bardzo skad sie bierze przesuniecie o godzine, jezeli chodzi o interpretacje tej samej liczby reprezentujacej date przez php oraz JS.

1. Czy funkcja time() zwarca znacznik aktualnego czasu GTM+0 (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
2. Czy JS na wejsciu przyjmuje czas GTM+0, a na wyjsciu uwzglednia przesuniecie lokalnego czasu (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
3. Jak sie ma sprawa z czasem letnim/zimowych, czy to jest w jakis sposob uwzgledniane (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

---

Generalnie php ma zapisywac czasy dodania wiadomosci.
W chwili otwarcia strony beda one przeslane do przegladarki bez zadnej obrobki. Dopiero JS ma sie za to zabrac i wyswietlic dane przeliczone na czas lokalny.
To tak jak na forum - wyswietla sie data dodania postu - w kazdym kraju lokalna w zaleznosci od strefy czasowej.
Ja chce to osiagnac przy pomocy JS, aby php nie dokonywalo zadnych obliczen.

Jakich funcji uzyc po strone php a jakich po stronie JS zeby dzialalo to poprawnie i uwzglednialo czas letni/zimowy.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kufalo
post
Post #2





Grupa: Zarejestrowani
Postów: 251
Pomógł: 2
Dołączył: 24.08.2005

Ostrzeżenie: (0%)
-----


Cytat
time() zwraca czas lokalny

time() nie zwraca czasu lokalnego ani czasu UTC (GTM) lecz zgodnie z manualem:
Cytat
Returns the current time measured in the number of seconds since the Unix Epoch (January 1 1970 00:00:00 GMT).

liczbę sekund od 1 stycznia 1970 00:00:00 GMT (czasu londynskiego).

Znacznik ten jest na calym swiecie z danym momencie jednakowy, niezaleznie od wersji php oraz ustawien date_default_timezone_set().

Wszystko zalezy jak wykorzysta sie jego wartosc.

Funcja date() przy formatowaniu daty ze znacznika automatycznie dolicza przesuniecie czasu lokalnego. Natomiast fukcja gmdate() nie wprowadza tej korekty, czyli otrzymujemy czas UTC (GTM, londynski).

---

Zamieszanie z roznica czasow, jakie wyswietlal pierwszy moj skrypt wzielo sie stad, ze funcja php date() (jak rowniez funkcje JS: getDate(), getMonth(), getFullYear(), getHours(), getMinutes(), getSeconds()) formatuje date czasu lokalnego ze znacznika czasu.
Poniewaz w php mialem zdefiniowany czas lokalny londynski (dla funkcji date()), a w windowsie (dla JS) polski powstawala roznica 1h.

A tak to powinno wygladac, aby nie dochodzilo do roznic:
  1. <script>
  2.  x=new Date(<?=time()?>000)
  3.  x=x.getDate()+'.'+(x.getMonth()+1)+'.'+x.getFullYear()+' '+x.getHours()+':'+x.getMinutes()+'.'+x.getSeconds()
  4.  document.write(x+'<br>')
  5.  
  6.  x=new Date()
  7.  x=x.getDate()+'.'+(x.getMonth()+1)+'.'+x.getFullYear()+' '+x.getHours()+':'+x.getMinutes()+'.'+x.getSeconds()
  8.  document.write(x)
  9. </script>
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 16:46