$date = date('Ym-d',current_time('timestamp', 0));
Как изменить $date
на $date + 5 days
?
Версия PHP – 5.2.
Этот код не работает:
$date_cur = date('Ym-d',current_time('timestamp', 0)); echo $date_cur . ' <br>'; $date_cur_plus = date($date_cur, strtotime('+5 days')); echo $date_cur_plus;
Дает мне:
2011-11-29 2011-11-29
Вы можете использовать mktime()
используя временную метку.
Что-то вроде:
$date = date('Ym-d', mktime(0, 0, 0, date('m'), date('d') + 5, date('Y')));
Использование strtotime()
выполняется быстрее, но мой метод все еще работает и является гибким в том случае, если вам нужно внести множество изменений. Кроме того, strtotime()
не может обрабатывать неоднозначные даты.
редактировать
Если вам нужно добавить 5 дней к уже существующей строке даты в формате YYYY-MM-DD
, вы можете разбить ее на массив и использовать эти части с помощью mktime()
.
$parts = explode('-', $date); $datePlusFive = date( 'Ym-d', mktime(0, 0, 0, $parts[1], $parts[2] + 5, $parts[0]) // ^ Month ^ Day + 5 ^ Year );
$date = date('Ym-d', strtotime('+5 days'));
Объектно-ориентированный стиль:
<?php $date = new DateTime('now'); $date->add(new DateInterval('P5D')); echo $date->format('Ym-d') . "\n"; ?>
Процедурный стиль:
<?php $date = date_create('2016-01-01'); date_add($date, date_interval_create_from_date_string('5 days')); echo date_format($date, 'Ym-d'); ?>
Использовать strtotime
:
$date = date('Ym-d', strtotime('+5 days'));
$dateplus5 = date('Ym-d', strtotime('+5 days'));
Вы можете использовать
strtotime(“+5 days”)
для получения текущей даты плюс 5 дней или
$targetDate = date($date, strtotime('+5 days'));
strtotime()
очень приятно. Он позволяет сделать следующее:
$startDate = 'now'; // or choose a certain date you want/have $startDate = '2013-02-14'; $intervals = array( '', '+ 5 days', '+ 31 days', '+ 3 months', '+ 2 years + 2 days' ); foreach($intervals as $interval) { $combinedDate = $startDate . ' ' . $interval; var_dump($combinedDate . ' => ' date('Ym-d', strtotime($combinedDate))); }
в результате:
now => 1360334498 = 2013-02-08
теперь + 5 дней => 1360766498 = 2013-02-13
теперь + 31 день => 1363012898 = 2013-03-11
теперь + 3 месяца => 1368020498 = 2013-05-08
теперь + 2 года + 2 дня => 1423579298 = 2015-02-10
или:
2013-02-14 => 1360792800 = 2013-02-14
2013-02-14 + 5 дней => 1361224800 = 2013-02-19
2013-02-14 + 31 день => 1363471200 = 2013-03-17
2013-02-14 + 3 месяца => 1368478800 = 2013-05-14
2013-02-14 + 2 года + 2 дня => 1424037600 = 2015-02-16
Я использовал это:
$date = strtotime("+1 day", strtotime("2007-02-28")); echo date("Ymd", $date);
Теперь работает.
Не должно было быть так?
$date_cur = date('Ym-d', current_time('timestamp', 0)); echo $date_cur . ' <br>'; $date_cur_plus = date('Ym-d', strtotime('+5 days', current_time('timestamp', 0) ) ); echo $date_cur_plus;
если дата уже существует, вы можете использовать этот код:
$tartDate = date("m/d/Y", strtotime("+1 Day", strtotime($Date)));