Я хочу добавить количество дней до текущей даты: Я использую следующий код:
$i=30;
echo $date = strtotime(date("Y-m-d", strtotime($date)) . " +".$i."days");
Но вместо получения правильной даты я получаю это: 2592000
Просьба предложить.
Я хочу добавить количество дней до текущей даты: Я использую следующий код:
$i=30;
echo $date = strtotime(date("Y-m-d", strtotime($date)) . " +".$i."days");
Но вместо получения правильной даты я получаю это: 2592000
Просьба предложить.
Это должно быть
echo date('Y-m-d', strtotime("+30 days"));
strtotime
ожидает, что будет предоставлена строка, содержащая формат даты в формате US English, и попытается проанализировать этот формат в временную метку Unix (количество секунд с 1 января 1970 года 00:00:00 по UTC) по сравнению с меткой времени, указанной в настоящее время, или текущее время, если теперь не предоставляется.
while date
Возвращает строку, форматированную в соответствии с заданной строкой формата, используя заданную метку времени или текущее время, если не указана метка времени.
См. страницы руководства для
и их сигнатур функций.
Это может быть хорошо
function addDayswithdate($date,$days){
$date = strtotime("+".$days." days", strtotime($date));
return date("Y-m-d", $date);
}
$date = new DateTime();
$date->modify('+1 week');
print $date->format('Y-m-d H:i:s');
или print date('Y-m-d H:i:s', mktime(date("H"), date("i"), date("s"), date("m"), date("d") + 7, date("Y"));
$today=date('d-m-Y');
$next_date= date('d-m-Y', strtotime($today. ' + 90 days'));
echo $next_date;
Имейте в виду, что изменение часов изменяется из-за летнего времени, может дать вам некоторые проблемы при расчете дней.
Здесь немного php-функции, которая позаботится об этом:
function add_days($date, $days) {
$timeStamp = strtotime(date('Y-m-d',$date));
$timeStamp+= 24 * 60 * 60 * $days;
// ...clock change....
if (date("I",$timeStamp) != date("I",$date)) {
if (date("I",$date)=="1") {
// summer to winter, add an hour
$timeStamp+= 60 * 60;
} else {
// summer to winter, deduct an hour
$timeStamp-= 60 * 60;
} // if
} // if
$cur_dat = mktime(0, 0, 0,
date("n", $timeStamp),
date("j", $timeStamp),
date("Y", $timeStamp)
);
return $cur_dat;
}
Вы также можете попробовать:
$date->modify("+30 days");
Вы можете сделать это, манипулируя временным кодом или используя strtotime(). Вот пример использования strtotime.
$data ['created'] = date ('Y-m-d H: i: s', strtotime ( "+ 1 неделя" ));
Вы можете использовать strtotime() $data['created'] = date('Y-m-d H:m:s', strtotime('+1 week'));
Я знаю, что это старый вопрос, но для PHP < 5.3 вы можете попробовать следующее:
$date = '05/07/2013';
$add_days = 7;
$date = date('Y-m-d',strtotime($date) + (24*3600*$add_days)); //my preferred method
//or
$date = date('Y-m-d',strtotime($date.' +'.$add_days.' days');
Вы также можете добавить это, если хотите дату 5 дней с определенной даты:
У вас есть переменная с датой, подобной этой (полученной из ввода или БД или просто жестко закодированной):
$today = "2015-06-15"; // Or can put $today = date ("Y-m-d");
$fiveDays = date ("Y-m-d", strtotime ($today ."+5 days"));
echo $fiveDays; // Will output 2015-06-20
Вы можете использовать класс DateTime, встроенный в PHP. Он имеет метод под названием "добавить", и его использование полностью продемонстрировано в руководстве: http://www.php.net/manual/en/datetime.add.php
Однако он требует PHP 5.3.0.
$date = "04/28/2013 07:30:00";
$dates = explode(" ",$date);
$date = strtotime($dates[0]);
$date = strtotime("+6 days", $date);
echo date('m/d/Y', $date)." ".$dates[1];
Вы можете попробовать это.
$i=30;
echo date("Y-m-d",mktime(0,0,0,date('m'),date('d')+$i,date('Y')));
Простой и лучший
echo date('Y-m-d H:i:s')."\n";
echo "<br>";
echo date('Y-m-d H:i:s', mktime(date('H'),date('i'),date('s'), date('m'),date('d')+30,date('Y')))."\n";
Попробуйте это
//add the two day
$date = "**2-4-2016**"; //stored into date to variable
echo date("d-m-Y",strtotime($date.**' +2 days'**));
//print output
**4-4-2016**
Используйте эту функцию addDate() для добавления или вычитания дней, месяцев или лет (вам также понадобится функция auxiliar reformatDate())
/**
* $date self explanatory
* $diff the difference to add or subtract: e.g. '2 days' or '-1 month'
* $format the format for $date
**/
function addDate($date = '', $diff = '', $format = "d/m/Y") {
if (empty($date) || empty($diff))
return false;
$formatedDate = reformatDate($date, $format, $to_format = 'Y-m-d H:i:s');
$newdate = strtotime($diff, strtotime($formatedDate));
return date($format, $newdate);
}
//Aux function
function reformatDate($date, $from_format = 'd/m/Y', $to_format = 'Y-m-d') {
$date_aux = date_create_from_format($from_format, $date);
return date_format($date_aux,$to_format);
}
Примечание: только для php >= 5.3
Используйте следующий код.
<?php echo date('Y-m-d', strtotime(' + 5 days')); ?>
Ссылка найдена здесь - Как добавить дни до текущей даты в PHP
//Set time zone
date_default_timezone_set("asia/kolkata");
$pastdate='2016-07-20';
$addYear=1;
$addMonth=3;
$addWeek=2;
$addDays=5;
$newdate=date('Y-m-d', strtotime($pastdate.' +'.$addYear.' years +'.$addMonth. ' months +'.$addWeek.' weeks +'.$addDays.' days'));
echo $newdate;
Несмотря на то, что это старый вопрос, этот способ выполнения этого требует многих ситуаций и, кажется, является надежным. Вы должны иметь PHP 5.3.0 или выше.
$EndDateTime = DateTime::createFromFormat('d/m/Y', "16/07/2017");
$EndDateTime->modify('+6 days');
echo $EndDateTime->format('d/m/Y');
У вас может быть любой тип формата для строки даты, и это сработает.