2016-08-09 3 views
1

У меня есть 2 переменных в PHP. Один получает сегодняшнюю дату и добавляет к ней 1 месяц. Это прекрасно работает. Другой должен взять эту дату и добавить к ней 6 дней. По какой-то причине эта часть отказывается работать. Я просто форматирую его неправильно? Я всегда получаю 01-06-1970 в моей базе данных.Добавить Days в PHP Variable

Вот переменная, которая получает текущую дату и добавляет 1 месяц (работает отлично)

$renewdate = date('Y-m-d', strtotime('+1 month')); 

Вот переменная, которая добавляет 6 дней до $ renewdate (не работает)

$latedate = date('Y-m-d', strtotime('+6 days',$renewdate)); 

ответ

5

Второй аргумент strtotime - это временная метка Unix. В настоящее время $renewdate - это строка. Итак:

$latedate = date('Y-m-d', strtotime('+6 days', strtotime($renewdate))); 
+0

Это работало на основе моего кода. Благодаря! –

3

PHP 5.2.0 принес DateTime, почему вы до сих пор придерживается старых функций? ООП лучше!

$dtCreate = DateTime::createFromFormat('Y-m-d H:i:s', '2016-08-02 16:16:02'); 
$dtCreate->add(new DateInterval('P6D')); 

Это добавит к вашему 6 daysDateTime объекта см DateInterval для деталей.

После добавлен интервал, вы можете format свой объект, однако вы хотите:

$dtCreate->format('Y-m-d H:i:s'); 

Это вернет 2016-08-08 16:16:02, как вы можете видеть, это через 6 дней.

+0

Это похоже на хорошее решение, но я не понимаю, что делают функции createFromFormat и P6D. Можете ли вы сломать его? Я хотел бы лучше понять этот метод. –

+0

@SpyderTech Я предоставил ссылки на официальное руководство по PHP, здесь все прекрасно объяснено. –