У меня есть этот код PHP:
$end=date('Ym-d');
Я использую его для получения текущей даты, и мне нужна дата 5 лет в будущем, что-то вроде:
$end=date('(Y + 5)-m-d');
Как я могу это сделать?
Попробуйте:
$end = date('Ym-d', strtotime('+5 years'));
Изменение дат, основанных на этом сообщении
strtotime () действительно эффективен и позволяет легко изменять / преобразовывать даты с помощью относительных выражений:
процедурный
$dateString = '2011-05-01 09:22:34'; $t = strtotime($dateString); $t2 = strtotime('-3 days', $t); echo date('r', $t2) . PHP_EOL; // returns: Thu, 28 Apr 2011 09:22:34 +0100
DateTime
$dateString = '2011-05-01 09:22:34'; $dt = new DateTime($dateString); $dt->modify('-3 days'); echo $dt->format('r') . PHP_EOL; // returns: Thu, 28 Apr 2011 09:22:34 +0100
То, что вы можете бросить в strtotime (), довольно удивительно и очень читаемо для человека. Взгляните на этот пример, который ищет вторник на следующей неделе.
процедурный
$t = strtotime("Tuesday next week"); echo date('r', $t) . PHP_EOL; // returns: Tue, 10 May 2011 00:00:00 +0100
DateTime
$dt = new DateTime("Tuesday next week"); echo $dt->format('r') . PHP_EOL; // returns: Tue, 10 May 2011 00:00:00 +0100
Обратите внимание, что приведенные выше примеры возвращаются относительно времени. Полный список форматов времени, которые strtotime () и конструктор DateTime принимает, перечислены на странице Поддерживаемые даты и времени PHP .
Другим примером, подходящим для вашего дела, может быть: на основании этого сообщения
<?php //How to get the day 3 days from now: $today = date("j"); $thisMonth = date("n"); $thisYear = date("Y"); echo date("F j Y", mktime(0,0,0, $thisMonth, $today+3, $thisYear)); //1 week from now: list($today,$thisMonth,$thisYear) = explode(" ", date("jn Y")); echo date("F j Y", mktime(0,0,0, $thisMonth, $today+7, $thisYear)); //4 months from now: list($today,$thisMonth,$thisYear) = explode(" ", date("jn Y")); echo date("F j Y", mktime(0,0,0, $thisMonth+4, $today, $thisYear)); //3 years, 2 months and 35 days from now: list($today,$thisMonth,$thisYear) = explode(" ", date("jn Y")); echo date("F j Y", mktime(0,0,0, $thisMonth+2, $today+35, $thisYear+3)); ?>
Используйте этот код для добавления лет или месяцев или дней или часов или минут или секунд до заданной даты
echo date("Ymd H:i:s", strtotime("+1 years", strtotime('2014-05-22 10:35:10'))); //2015-05-22 10:35:10 echo date("Ymd H:i:s", strtotime("+1 months", strtotime('2014-05-22 10:35:10')));//2014-06-22 10:35:10 echo date("Ymd H:i:s", strtotime("+1 days", strtotime('2014-05-22 10:35:10')));//2014-05-23 10:35:10 echo date("Ymd H:i:s", strtotime("+1 hours", strtotime('2014-05-22 10:35:10')));//2014-05-22 11:35:10 echo date("Ymd H:i:s", strtotime("+1 minutes", strtotime('2014-05-22 10:35:10')));//2014-05-22 10:36:10 echo date("Ymd H:i:s", strtotime("+1 seconds", strtotime('2014-05-22 10:35:10')));//2014-05-22 10:35:11
Вы также можете вычесть замену + на –
Чтобы добавить один год к сегодняшней дате, используйте следующее:
$oneYearOn = date('Ym-d',strtotime(date("Ymd", mktime()) . " + 365 day"));
Использование углерода :
$dt = Carbon::now(); echo $dt->addYears(5);
попробуй это ,
$presentyear = '2013-08-16 12:00:00'; $nextyear = date("M d,Y",mktime(0, 0, 0, date("m",strtotime($presentyear )), date("d",strtotime($presentyear )), date("Y",strtotime($presentyear ))+5)); echo $nextyear;
Это очень легко с Carbon. $date = "2016-02-16"; // Or Your date $newDate = Carbon::createFromFormat('Ym-d', $date)->addYear(1);
$date = strtotime($row['timestamp']); $newdate = date('dm-Y',strtotime("+1 year",$date));
попробуй это:
$yearnow= date("Y"); $yearnext=$yearnow+1; echo date("Y")."-".$yearnext;