2013-08-16 24 views
40

Ich habe diesen PHP-Code:PHP Datum hinzufügen 1 Jahr zu aktuellem Datum

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

ich es verwenden, um das aktuelle Datum zu bekommen, und ich brauche das Datum 5 Jahre in der Zukunft, so etwas wie:

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

Wie kann ich das tun?

+0

möglich Duplikat [mit php einem Jahr Datumzeit hinzufügen] (http://stackoverflow.com/questions/5212240/add-one-year-to -datetime-with-php) –

+0

Wird am 29. Februar in einem Schaltjahr etwas komisch, wenn Sie plötzlich den 1. März bekommen - seien Sie sich dieser Merkwürdigkeiten bewusst, wenn Sie versuchen, Daten zu manipulieren –

Antwort

99

Versuchen mit:

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

Hallo, ich muss dieses Beispiel verwenden, um 1 Jahr zu einem Datum hinzuzufügen, aber ich habe bereits Variablen: '$ facturedate = $ _POST ['invdate']; $ invdate = date ("Ymd", strtotime ($ invoicedate)); 'also würde ich dann eine dritte Zeile' $ due = date ('Ym-d', strtotime ($ invdate, '+ 1 year')) hinzufügen; '? – Adrian

1

zu einem Jahr zum heutigen Datum verwenden Sie die folgende hinzu:

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

und für Schaltjahre? – suspectus

+0

Das war toll, vielen Dank :) Ich akzeptiere ein paar Momente später – Letter

+0

@Letter Schau dir meine Antwort - es ist viel einfacher. – hsz

0

dies versuchen,

$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

Ändern Terminebased on this post
strtotime() ist wirklich mächtig und ermöglicht es Ihnen, Daten leicht zu modifizieren/Transformation mit ihm zu relativen Ausdrücke ist:

Procedural

$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 

Das Zeug, das Sie bei strtotime() werfen können, ist ziemlich überraschend und sehr menschlich lesbar. Sehen Sie sich dieses Beispiel an und suchen Sie nächste Woche nach Dienstag.

Procedural

$t = strtotime("Tuesday next week"); 
    echo date('r', $t) . PHP_EOL; // returns: Tue, 10 May 2011 00:00:00 +0100 

Datumzeit

$dt = new DateTime("Tuesday next week"); 
    echo $dt->format('r') . PHP_EOL; // returns: Tue, 10 May 2011 00:00:00 +0100 

Hinweis, dass diese obigen Beispiele relativen jetzt auf die Zeit zurückgeführt werden. Die vollständige Liste der Zeitformate, die strtotime() und der DateTime-Konstruktor verwenden, ist unter PHP Supported Date and Time Formats page aufgeführt.

Ein weiteres Beispiel, geeignet für Ihren Fall könnte sein: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

Verwenden Sie diesen Code Jahre oder Monate oder Tage oder Stunden oder Minuten oder Sekunden hinzuzufügen, zu einem Datum

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 

Sie können auch subtrahieren ersetzen + bis -

0

Es ist sehr sehr einfach mit Auto Bon. $date = "2016-02-16"; // Or Your date $newDate = Carbon::createFromFormat('Y-m-d', $date)->addYear(1);

+0

Die Carbon-Klasse und ihre Methoden gehören zu einem bestimmten Frame-Arbeit (Laravel) und in der Frage, die wir finden, finden wir keinen Frame-Work-Namen, sondern wird mit PHP-Datumsfunktionen gefragt. Ich denke, das ist, warum Sie keine Daumen bekommen haben :) –

-1

versuchen Sie dies:

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

Nicht ganz, was gefragt wurde. – wonce

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