2013-08-16 2 views
40

У меня есть этот PHP код:дата PHP добавить 1 год текущей даты

$end=date('Y-m-d'); 

я использую его, чтобы получить текущую дату, и мне нужна дата 5 лет в будущем, что-то вроде:

$end=date('(Y + 5)-m-d'); 

Как это сделать?

+0

возможно дубликат [добавить один год, чтобы DateTime с PHP] (http://stackoverflow.com/questions/5212240/add-one-year-to -datetime-with-php) –

+0

Получает слегка причудливый 29 февраля в високосный год, когда вы вдруг получаете 1 марта - будьте в курсе таких странностей, когда пытаетесь манипулировать датами –

ответ

99

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

$end = date('Y-m-d', strtotime('+5 years')); 
+0

Привет, мне нужно использовать этот пример, чтобы добавить 1 год к дате, но у меня уже есть переменные: '$ invoicedate = $ _POST ['invdate']; $ invdate = date ("Ymd", strtotime ($ invoicedate)); 'поэтому я бы добавил 3-ю строку' $ due = date ('Ym-d', strtotime ($ invdate, '+ 1 year')); '? – Adrian

1

Чтобы добавить один год на сегодняшний день сегодняшнего использовать следующее:

$oneYearOn = date('Y-m-d',strtotime(date("Y-m-d", mktime()) . " + 365 day")); 
+1

и для високосного года? – suspectus

+0

Это было здорово! :) Я принимаю несколько мгновений – Letter

+0

@Letter Посмотрите на мой ответ - это намного проще. – hsz

0

попробовать это,

$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; 
12

Изменение датыbased on this post
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 Supported Date and Time Formats page.

Другой пример, подходящий для вашего случая может быть:based on this post

<?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("j n Y")); 
    echo date("F j Y", mktime(0,0,0, $thisMonth, $today+7, $thisYear)); 

    //4 months from now: 
    list($today,$thisMonth,$thisYear) = explode(" ", date("j n 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("j n Y")); 
    echo date("F j Y", mktime(0,0,0, $thisMonth+2, $today+35, $thisYear+3)); 
    ?> 
6

Используйте этот код для добавления лет или месяцев или дней или часов или минут или секунд до указанной даты

echo date("Y-m-d H:i:s", strtotime("+1 years", strtotime('2014-05-22 10:35:10'))); //2015-05-22 10:35:10 
echo date("Y-m-d H:i:s", strtotime("+1 months", strtotime('2014-05-22 10:35:10')));//2014-06-22 10:35:10 
echo date("Y-m-d H:i:s", strtotime("+1 days", strtotime('2014-05-22 10:35:10')));//2014-05-23 10:35:10 
echo date("Y-m-d H:i:s", strtotime("+1 hours", strtotime('2014-05-22 10:35:10')));//2014-05-22 11:35:10 
echo date("Y-m-d H:i:s", strtotime("+1 minutes", strtotime('2014-05-22 10:35:10')));//2014-05-22 10:36:10 
echo date("Y-m-d H:i:s", strtotime("+1 seconds", strtotime('2014-05-22 10:35:10')));//2014-05-22 10:35:11 

Вы также можете вычесть замену + на -

0

Очень легко с автомобилем бон. $date = "2016-02-16"; // Or Your date $newDate = Carbon::createFromFormat('Y-m-d', $date)->addYear(1);

+0

Класс углерода и его методы относятся к определенной работе рамы (Laravel), и в вопросе с вопросом мы не находим никакого имени рабочей области кадра, а спрашиваем, используя функции даты PHP. Я думаю, именно поэтому вы не получили никаких больших пальцев :) –

-1

попробовать это:

$yearnow= date("Y"); 
$yearnext=$yearnow+1; 
echo date("Y")."-".$yearnext; 
+0

Не совсем то, что было задано. – wonce

0
 $date = strtotime($row['timestamp']); 
     $newdate = date('d-m-Y',strtotime("+1 year",$date));