Привет всем, я пытаюсь добавить 30 дней к моей дате. Я использую ниже кодирование.
<?php
$next_due_date = date('05/06/2016', strtotime("+30 days"));
echo $next_due_date;
?>
Но он возвращается только к "05/06/2016"!
Пожалуйста, помогите мне!
Привет всем, я пытаюсь добавить 30 дней к моей дате. Я использую ниже кодирование.
<?php
$next_due_date = date('05/06/2016', strtotime("+30 days"));
echo $next_due_date;
?>
Но он возвращается только к "05/06/2016"!
Пожалуйста, помогите мне!
Пожалуйста, попробуйте это.
echo date('m/d/Y',strtotime('+30 days',strtotime('05/06/2016'))) . PHP_EOL;
Это вернет 06/06/2016
. Предполагаю, что ваша начальная дата была в формате m/d/Y. Если нет, не беспокойтесь и используйте это.
echo date('d/m/Y',strtotime('+30 days',strtotime(str_replace('/', '-', '05/06/2016')))) . PHP_EOL;
Это даст вам дату в формате d/m/Y, а также если ваша начальная дата была в формате d/m/Y. Возвращает 05/07/2016
Если входная дата будет в mysql, вы можете выполнить эту функцию непосредственно в mysql, как это.
DATE_ADD(due_date, INTERVAL 1 MONTH);
Do не используйте функцию php date(), она не так точна, как приведенное ниже решение, и, кроме того, она ненадежна в будущем.
Используйте класс DateTime class
<?php
$date = new DateTime('2016-06-06'); // Y-m-d
$date->add(new DateInterval('P30D'));
echo $date->format('Y-m-d') . "\n";
?>
Причина, по которой вам следует избегать каких-либо действий с метками времени UNIX (time()
, date()
, strtotime()
и т.д.), заключается в том, что они неизбежно прервутся в году 2038 из-за целочисленных ограничений.
Максимальное значение целого числа - 2147483647
, которое преобразуется в Tuesday, 19 January 2038 03:14:07
, так что приходите на этот раз; в эту минуту; эта секунда; все ломается
Вам нужно указать формат даты, например d/m/Y
вместо 05/06/2016
Try
$old_date = '05-06-2016';
$next_due_date = date('d-m-Y', strtotime($old_date. ' +30 days'));
echo $next_due_date;
Первый параметр - это формат, а не текущая дата.
<?php
$next_due_date = date('d/m/Y', strtotime("+30 days"));
echo $next_due_date;
Демо: https://eval.in/583697
Если вы хотите добавить 30 days
к определенной начальной дате, используйте второй параметр функции strtotime
, чтобы сообщить, с чего начать.
В случае сомнений относительно того, как работает функция, обратитесь к руководству.
http://php.net/manual/en/function.strtotime.php
http://php.net/manual/en/function.date.php
$date = "1998-08-14";
$newdate = strtotime ( '30 day' , strtotime ( $date ) ) ;
$newdate = date ( 'Y-m-j' , $newdate );
echo $newdate;