![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 6.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Dzień dobry,
Do roku 2038 jeszcze szmat czasu, a ten już daje się we znaki. W skrypcie php zapisuję daty wraz z godziną w bazie danych w kolumnie DATETIME. Wszystko jest w porządku z dodawaniem dni/lat do bieżącej daty, dopóki nie przekroczy się roku 2038. Wtedy licznik jest cofany. Bez problemu mogę wyedytować ręcznie datę w bazie danych na lata późniejsze. Błąd siedzi więc raczej w skrypcie, i wynika z zakresu liczb. Obecnie robię to tak:
Zmienna "$timeAdded" to liczba dodawanych sekund na podstawie tego, co użytkownik wpisał (ile dni, albo lat dodać). TimeNow/TimeAfter lecą następnie do bazy. Jak to przerobić (bez gmatwania, np. obiektowego), aby przy dodawaniu zbyt dużej liczby sekund licznik po roku 2038 się nie przekręcał? A może coś innego mam skopane? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Do tego czasu będą już wszystkie maszyny 64bit, więc problemu nie będzie. A teraz po prostu dodawaj sekundy normalnie do pełnej daty, bez pobierania żadnego time() i przekształcania na datę (co zresztą samo w sobie wg mnie jest idiotyczne, nawet bez tego problemu z 2038r).
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Zainteresuj się http://pl1.php.net/manual/en/class.datetime.php
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 08:37 |