maciejkiner
15.01.2006, 17:46:09
Witam
Mam nastepujacy problem. Napisalem system w php do obslugi serwisu internetowego i przez dlugi czas pracowal on na serwerze w polsce, gdzie wszystkie daty byly "nasze". Teraz jednak testowo przenosimy system na serwer w USA i pojawia sie problem innej strefy czasowej. W systemie tym godzina i data sa parametrami kluczowymi, a przerobienie calosci bedzie mocno czasochlonne. Na serwerze mam jedynie dostep do cPanelu i pliku php.ini. Przegladalem juz dokumentacje i jedna ksiazke ale nigdzie nie znalazlem na ten temat informacji 0 czy mozna "na stale" ustawic jakas zmienna, patametr lub wywyolywac przy uruchomieniu skryptu jakas funkcje, ktora spowoduje przestawienie czasu o tych kilka godzin, zeby byl zgodny z nasza strefa czasowa?
pzdr
maciejkiner
tommy4
15.01.2006, 17:53:55
hmm, nie widzę innego sposobu jak tylko przeliczyć różnicę godzin na sekundy i potem dodawać do każdego czasu przy wyświetlaniu... A jeżeli czas jest wstawiany do bazy od razu sformatowany, to proponuję przed wstawieniem dodać tą ilość godzin w sekundach do czasu. Rozumiesz?
slash.
15.01.2006, 17:58:42
niestety nie napisalej jaka wersja php na tym serwerze - bo jesli by ci sie udalo skorzystac z php 5.1 to do dyspozycji masz funkcje:
http://pl2.php.net/manual/en/function.date...imezone-set.php jesli jest to wczesniejsza wersja php to niestety chyba jedynym sposobem jest zmiana strefy czasowej na serwerze - bowiem jak mi sie wydaje funkcje obslugi czasyu bazuja na systemowym znaczniku czasu, dlatego tez bez zmiany strefy czasowej moze byc konieczne zastapienie php funkcji pobierania czasu na wlasne uwzgledniajace przeliczanie strefy czasowej lub zmiana sposobu ich wywolania. Innych pomyslow na chwile obecna nie mam.
tommy4
15.01.2006, 18:02:28
Też miałem taki problem, ale ja piszę system CMS od początku, dlatego jest mi łatwo dodać coś do czasu np.
<?php
$czasnewsa = $czasnewsa + 3600
?>
gdzie 3600 to różnica czasu.
maciejkiner
15.01.2006, 22:09:46
Witam
Niestety na serwerze nie moge nic zmienic (jest to tylko konto wykupione, a nie caly serwer). Co do wersji php to zaraz sprawdze, ale chyba 4.4... O recznym sposobie przeliczania wiedzialem, ale tam jest wywolan date() mnostwo (kilkaset pewnie). Zaluje, ze nie napisalem na poczatku, projektujac system, zadnej nakladki na date, no ale teraz juz troche za pozno i bede musial recznie poprawiac...
pzdr
maciejkiner
sobstel
16.01.2006, 09:58:00
pewnym rozwiazanie jest stosowanie wszedzie gmdate (jednak jesli nie jest to serwis miedzynarodowy to troche nie ma to sensu wtedy)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.