|
|
phpBB2 by Przemo
Support forów phpBB2 modified by Przemo
|
|
Przesunięty przez: chelloPL 27-08-2007, 20:33 |
funkcja date |
Autor |
Wiadomość |
misterdexter
Posty: 12
|
Wysłany: 12-04-2004, 19:55 funkcja date
|
|
|
Wiem Przemo, że dostajesz już sza?u z tymi wszystkimi poprawkami, ale chciałbym Cię prosić o dodanie małej rzeczy, a która wielu może się przyda?. Chodzi konkretnie o problemy związane z czasem letnim.
Widziałem, że korzystasz z polecenia date("I"), które jest niestety zawodne. Ja mam serwer w Stanach i zmiana na czas letni była nie w ostatni? sobot? marca, ale w pierwsz? sobot? kwietnia. I tu moja prośba. Czy mógłby? pomóc innym z takim problemem korzystaj?c na forum zamiast z date("I") z mojego algorytmu? Jest bardzo dobry i zarazem prosty. Z powodzeniem stosuj? go u siebie na stronie.
Funkcja zwraca 0 dla czasu od godz. 2.00 ostatniej soboty pa?dziernika do godz. 3.00 ostatniej soboty marca. W pozostałym okresie czasu funkcja zwraca 1. W nawiasie dodatkowo podajemy różnic? od czasu Londy?skiego, dla czasu zimowego, czyli dla Polski 1.
Z góry dzięki za chociaż ch?? przeczytania tego tematu... |
|
|
|
|
Gadatliwa Kasia
|
|
|
|
Przemo
Pomógł: 210 razy Posty: 3148
|
Wysłany: 12-04-2004, 21:04
|
|
|
Niewiele pomoge bo nie orientuje siedokladnie w tych wszystkich datach, zmianach czasu itp. |
|
|
|
|
misterdexter
Posty: 12
|
Wysłany: 12-04-2004, 21:09
|
|
|
Ja to sprawdzałem w różnych encyklopediach. Dla pewności możesz zajrze?, np. tu: en.wikipedia.org/wiki/Daylight_saving_time
Jeśli będziesz zainteresowany, to mogę Ci przesła? mój kod. To może się naprawdę przyda?, bo teraz co raz więcej serwerów jest w Stanach a ludzi różnica czasu denerwuje... |
|
|
|
|
Widmo
Pomógł: 180 razy Posty: 2435
|
|
|
|
|
misterdexter
Posty: 12
|
Wysłany: 12-04-2004, 21:51
|
|
|
Oto kod:
Kod: | function czasLetni($offset){
$offset*=3600;
$DST = 0;
$toDay = gmdate("j",time()+$offset);
$mon = gmdate("n",time()+$offset);
$yea = gmdate("Y",time()+$offset);
$hou = gmdate("G",time()+$offset);
if($mon == 3){
for($i=0;$i<31;$i++){
if(date("w",mktime(0,0,0,$mon,$i+1,$yea)) == 0){
$lastDay = date("j",mktime(0,0,0,$mon,$i+1,$yea));
}
}
if($lastDay < $toDay || $lastDay == $toDay && $hou >= 2){
$DST = 1;
}
}
if($mon > 3 && $mon < 11){
$DST = 1;
}
if($mon == 10){
for($i=0;$i<31;$i++){
if(date("w",mktime(0,0,0,$mon,$i+1,$yea)) == 0){
$lastDay = date("j",mktime(0,0,0,$mon,$i+1,$yea));
}
}
if($lastDay < $toDay || $lastDay == $toDay && $hou >= 2){
$DST = 0;
}
}
return $DST;
}
|
|
|
|
|
|
Przemo
Pomógł: 210 razy Posty: 3148
|
Wysłany: 12-04-2004, 21:57
|
|
|
mozna przeciez ustawic roznice czasu w panelu admina i w profilu, wiec nie wiem w czym problem. |
|
|
|
|
misterdexter
Posty: 12
|
Wysłany: 12-04-2004, 22:29
|
|
|
No można
Widziałem na jednym forum, że kazali wszystkim przestawić na Kaliningrad, ale to jest śmieszne!
Poza tym zmianą na czas letni już dodałeś i jest nawet wyłączanie w PA. Ja proszę jedynie o zmianą tego algorytmu z PHP, wg. czasu serwera, na mój. No chyba, że byłoby to dużo zabawy... |
|
|
|
|
Przemo
Pomógł: 210 razy Posty: 3148
|
Wysłany: 13-04-2004, 00:02
|
|
|
Duzo, pełno jest w forum funkcji date() i time() trzeba by to bylo wszedzie zmieniac, znow sie cos pochrzani. Mozna hurtowo zmienic userom strefe w PA>SQL>MySQL: update phpbb_users set user_timezone='5' i już |
|
|
|
|
Gadatliwa Kasia
|
|
|
|
misterdexter
Posty: 12
|
Wysłany: 13-04-2004, 00:06
|
|
|
To jest niestety ten ból
Te? widziałem, że dużo tam jest tego date Przynajmniej dzięki, że po?więciliście mi czas. |
|
|
|
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum
|
Dodaj temat do Ulubionych Wersja do druku
|
Kopiowanie wszelkich treści zawartych na forum, modyfikacji oraz instrukcji bez zgody administracji i autorów tematów/postów zabronione!
Powered by phpBB modified by Przemo © 2003 phpBB
| Strona wygenerowana w 0,08 sekundy. Zapytań do SQL: 12 | |
|
|