Muszę dostać datę, która jest 6 miesięcy dodana z określoną datą. Użyłem następujący kodDodać datę w php daje różne wyniki
$start_date = "2016-08-30";
$end_date= date("Y-m-d", strtotime("$start_date +6 months"));
echo $end_date;
który dał wynik jako 2017-03-02
Potem zmienił datę rozpoczęcia w kodzie jak poniżej
$start_date = "2016-09-01";
$end_date= date("Y-m-d", strtotime("$start_date +6 months"));
echo $end_date;
który daje wynik w 2017-03 -01
Dlaczego tak się dzieje na pierwszym miejscu? Czy coś jest nie tak z moim kodem?
MySQL zapytanie
SELECT DATE_ADD('2016-08-30', INTERVAL 6 MONTH)
daje spowodować 2017-02-28
co jest dobrym rozwiązaniem, aby uzyskać prawidłową datę?
Możesz spróbować tego. $ date = new DateTime ("2016-08-30); $ date-> add (DateInterval :: createFromDateString (+6 miesięcy)); var_dump ($ date); –
Prawidłowe pytanie brzmi: co ** masz na myśli przez '2016-08-30 +6 miesięcy'? O jakiej randce spodziewasz się z tego wyrażenia bez korzystania z komputera? Czy to 30 dnia szóstego miesiąca w przyszłości (w tym przypadku luty)? Lub '2016-08-30' plus' 6 * 30 dni'? – axiac
@axiac: jestem także zdezorientowany w tej chwili o oczekiwanym wyniku. Używam tej funkcji do wygaśnięcia funkcji w mojej witrynie. Udostępniam ten problem od czasu znalezienia anomalii i może być pomocny również dla innych. – Thejas