2013-08-16 12 views
40

Mam ten kod PHP:data PHP dodać 1 roku do bieżącej daty

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

go używać, aby uzyskać aktualną datę i muszę datę 5 lat w przyszłości, coś takiego:

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

Jak mogę to zrobić?

+0

możliwe duplikat [dodaj jeden rok do datetime PHP] (http://stackoverflow.com/questions/5212240/add-one-year-to -datetime-with-php) –

+0

Dostaje się nieco dziwacznie 29 lutego w roku przestępnym, gdy nagle dostajesz 1 marca - bądź świadomy takich dziwactw, próbując manipulować datami –

Odpowiedz

99

Spróbuj z:

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

Witam, muszę użyć tego przykładu, aby dodać 1 rok do daty, ale już mam zmienne: '$ invoicedate = $ _POST ['invdate']; $ invdate = date ("Ymd", strtotime ($ invoicedate)); więc czy powinienem dodać 3 wiersz '$ due = date ('Ym-d', strtotime ($ invdate, '+ 1 year')); '? – Adrian

1

dodać jeden rok dniem dzisiejszym użyć następujących:

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

i latami przestępnymi? – suspectus

+0

To było wspaniałe, bardzo dziękuję :) Akceptuję kilka chwil później – Letter

+0

@Letter Spójrz na moją odpowiedź - to znacznie prostsze. – hsz

0

spróbować,

$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

Modyfikowanie datybased on this post
strtotime() jest bardzo silny i pozwala na modyfikację/przekształcić dat łatwo z jego przejawów względne też:

proceduralne

$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 

Rzeczy, które można rzucić w strtotime(), są dość zaskakujące i bardzo czytelne dla ludzi. Spójrz na ten przykład, szukając wtorek w przyszłym tygodniu.

proceduralny

$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 

Należy zauważyć, że te przykłady powyżej są zwrócone w stosunku do czasu. Pełna lista formatów czasowych, które strtotime() i konstruktor daty DateTime są wymienione na PHP Supported Date and Time Formats page.

Innym przykładem, odpowiednie dla danego przypadku mogą być: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

użyć tego kodu, aby dodać lat lub miesięcy lub dni lub godzin lub minut lub sekund na dany dzień

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 

Można również odjąć wymianę + na -

0

Jest to bardzo łatwe z samochodem bon. $date = "2016-02-16"; // Or Your date $newDate = Carbon::createFromFormat('Y-m-d', $date)->addYear(1);

+0

Klasa Carbon i jej metody należą do konkretnej pracy ramowej (Laravel). W zadanym pytaniu nie znajdujemy żadnej nazwy ramki, a raczej pytanie o funkcje daty PHP. Myślę, że dlatego nie dostałeś żadnych kciuków :) –

-1

spróbuj tego:

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

Nie do końca to, o co pytano. – wonce

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