Mam datę zwróconą w ramach zapytania mySQL w formularzu 2010-09-17
Chciałbym ustawić zmienne $ Date2 na $ Date5 w następujący sposób:
$Date2 = $Date + 1
$Date3 = $Date + 2
itp..
tak, że wraca 2010-09-18
, 2010-09-19
etc ...
próbowałem
date('Y-m-d', strtotime($Date. ' + 1 day'))
ale to daje mi datę PRZED $Date
.
Jaki jest prawidłowy sposób, aby uzyskać moje daty w formacie „Ymd”, aby można je było wykorzystać w innym zapytaniu?
Odpowiedzi:
Wszystko, co musisz zrobić, to użyć
days
zamiastday
tego:I wyprowadza poprawnie:
źródło
day
dobrze ...date("Y-m-d", strtotime('2010-09-17 + 1 day'))
->2010-09-18
,date("Y-m-d", strtotime('2010-09-17 + 2 day'))
->2010-09-19
Jeśli używasz PHP 5.3, możesz użyć
DateTime
obiektu i jegoadd
metody:Spójrz na stronę podręcznika
DateInterval
konstruktora, aby dowiedzieć się, jak skonstruować inne okresy, aby dodać je do swojej daty (2 dni'P2D'
, 3 dni'P3D'
itd.).Bez PHP 5.3 powinieneś być w stanie korzystać
strtotime
ze sposobu, w jaki to zrobiłeś (przetestowałem go i działa zarówno w wersji 5.1.6, jak i 5.2.10):źródło
DateTime::construct
używa tego samego mechanizmu costrtotime
do parsowania daty, więc możesz również zrobić,new DateTime("+1 day $date")
co nie wymagałoby 5.3Od PHP 5.2 możesz używać modyfikować z obiektem DateTime:
http://php.net/manual/en/datetime.modify.php
Zachowaj ostrożność, dodając miesiące ... (i w mniejszym stopniu lata)
źródło
Oto mały fragment przedstawiający zmiany daty:
źródło
Możesz także użyć następującego formatu
Możesz układać zmiany w stos w ten sposób:
Zwróć uwagę na różnicę między tym podejściem a tym w innych odpowiedziach: zamiast łączyć wartości
+1 day
i<timestamp>
możesz po prostu przekazać znacznik czasu jako drugi parametr parametrustrtotime
.źródło
Używanie zmiennej dla liczby dni
źródło
Oto najprostsze rozwiązanie twojego zapytania
źródło
Oto prosty sposób na rozwiązanie tego problemu.
Dane wyjściowe będą:
Rozwiązanie znalazło się stąd - Jak dodać dni do daty w PHP
źródło
Wszyscy muszą użyć poniższego kodu:
źródło