Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]strtotime odejmowanie dni z timestamp
fr33d0m
post 6.07.2012, 11:45:57
Post #1





Grupa: Zarejestrowani
Postów: 132
Pomógł: 4
Dołączył: 22.10.2010

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


W bazie mam kolumne: `dd` timestamp
Na podstawie czasu z kolumny timestamp, chcę porównać datę z serwera i w zależności od wyniku wyświetlić odpowiedni komunikat. Problem jest z poprawnym odjęciem jednego dnia z kolumny timestamp bo wyświetla się, zupełnie inny wynik niż powinien...
  1. //$row['dd'] == 2012-07-05 22:55:04
  2.  
  3. $timeDB = mktime($row['dd']);
  4. $OdjetaData = date('Y-m-d H:i:s',strtotime('-1 day', $timeDB));
  5.  
  6. //$timeDB == 1348771328
  7. //$OdjetaData == 2012-09-26 20:42:08 / powinno byc: 2012-07-04 22:55:04


Ten post edytował fr33d0m 6.07.2012, 13:40:55


--------------------
UWAGA! Stwierdzono naruszenie paragrafu §33 ustawy ACTA. Podpis użytkownika został usunięty.
Go to the top of the page
+Quote Post
IProSoft
post 6.07.2012, 12:05:54
Post #2





Grupa: Zarejestrowani
Postów: 479
Pomógł: 97
Dołączył: 6.09.2011
Skąd: php.net :)

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


  1. $timeDB = strtotime($row['dd']);
  2. echo date('Y-m-d H:i:s', strtotime('-1 day', $timeDB));


--------------------
Manual prawdę Ci powie.
Go to the top of the page
+Quote Post
fr33d0m
post 6.07.2012, 12:35:25
Post #3





Grupa: Zarejestrowani
Postów: 132
Pomógł: 4
Dołączył: 22.10.2010

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


Ten sam efekt... a na pewno konstrukcja jest poprawna? może to wina mojego XAMPA?

edit: nie do końca ten sam efekt:
echo zwraca: 1969-12-31 01:00:00

Ten post edytował fr33d0m 6.07.2012, 12:39:48


--------------------
UWAGA! Stwierdzono naruszenie paragrafu §33 ustawy ACTA. Podpis użytkownika został usunięty.
Go to the top of the page
+Quote Post
thek
post 6.07.2012, 13:45:52
Post #4





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Czyli w bazie w owej kolumnie masz NULL lub ją pustą. Czemu? Bo w timestamp najniższa wartość ( czyli 0 ) to 1 stycznia 1970 roku. Jeśli od tego odejmiesz ten dzień to co otrzymasz? wink.gif Ty lepiej sprawdź te dane, bo na bank wina jest nie po stronie skryptu. Może też być tak, że masz skopane coś z nazwą i PHP ustawia tam wartość pustą, potem konwertuje to do 0, a stąd do daty 1 stycznia 1970, oraz odejmuje 1 dzień.

EDIT: A czemu nie spróbujesz odjąć 1 dnia po stronie bazy (funkcje daty czasu w manualu zobacz sobie) i w php tylko porównać?


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
fr33d0m
post 6.07.2012, 15:41:27
Post #5





Grupa: Zarejestrowani
Postów: 132
Pomógł: 4
Dołączył: 22.10.2010

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


timestamp w bazie mam wypełnioną datą i czasem - istnieją dane smile.gif
Wiem, że to dziwne... zanim zapytałem na forum przeglądałem google i pierwszą stronę wyników.
Hmm... skopane z nazwą? w sensie nadpisanie, którejś ze zmiennych? Też odpada.

Nie odejmuje z bazy 1)bo nie wiem jak, 2)ten sposób wydał mi się prostszy - jeśli nie uda się rozwiązać problemu to będę próbował odejmować z bazy.

Hmm... więc to wina XAMPA... już wcześniej kilka razy przy konkretnym INSERT wpuścił mi znak ' mimo, że filtrowałem.

Może jeszcze jakieś idee na rozwiązanie problemu?


Problem rozwiązany.
XAMPP Control Panel 2.3 [14. August, 2009] - działał błędnie - być może tylko moja indywidualna kompilacja, ponieważ mam ją zainstalowaną od ponad 2lat i sporo w php.ini grzebałem (chociaż to nie ma zbyt dużego znaczenia).
Przeinstalowałem na: XAMPP Control Panel Version 2.5 (16. March, 2011) i podany powyżej przykład pięknie hula. smile.gif


--------------------
UWAGA! Stwierdzono naruszenie paragrafu §33 ustawy ACTA. Podpis użytkownika został usunięty.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 22.07.2025 - 03:41