2016-05-09 4 views
1

У меня есть система выставления счетов, которая генерирует следующую дату после оплаты счета. Моя проблема заключается в том, что я хочу сгенерировать следующий счет на основе даты последнего, а не когда он был оплачен.Получение php для правильного добавления дней до даты

Я знаком с добавлением дней к текущей дате, например, как это:

$nextduedate = date('Y-m-d', strtotime("+30 days")); 

Допустит, счет-фактура должна была на 2016-05-08, но это было уделено 2016-05-12 Как могу ли я заставить систему добавить 30 дней к моей переменной $dueDate, которая вытаскивается из базы данных и устанавливает следующую дату истечения срока действия счета-фактуры 30 дней с момента предыдущего?

ответ

0

Попробуйте это:

$nextduedate = ('Y-m-d', strtotime($duedate. ' + 30 days')); 

Это будет отформатировать дату, а затем добавить 30 дней к старому сроку, хранящегося в переменной.

+0

Awesome! Позвольте мне попробовать это, и я дам вам знать. –

+0

Это сработало. Спасибо –

+1

Это действительно плохая идея по сравнению с классом DateTime http://php.net/manual/en/class.datetime.php –

2

DateTime() Использование:

$dueDate = new DateTimeImmutable('2016-05-08'); 
$nextInvoice = $dueDate->modify('+30 days'); 
echo $nextInvoice->format('Y-m-d'); 
+0

Хотя в ближайшие месяцы срок не будет 2016-05-08, так что я могу поместить переменную вместо фактической даты в DateTimeImmutable? –

+0

@MDavid да, конечно, вы можете. '$ foo = '2016-05-08'; $ dueDate = new DateTimeImmutable ($ foo); ' –

+0

Sweet! Попробуйте это сейчас и сообщите, если это сработает. –

 Смежные вопросы

  • Нет связанных вопросов^_^