2013-08-16 42 views
40

tôi có mã PHP này:ngày PHP thêm 1 năm để ngày hiện tại

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

tôi sử dụng nó để có được ngày hiện tại, và tôi cần ngày 5 năm trong tương lai, một cái gì đó như:

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

Tôi làm cách nào để thực hiện việc này?

+0

thể trùng lặp của [thêm một năm để datetime với php] (http://stackoverflow.com/questions/5212240/add-one-year-to -datetime-with-php) –

+0

Hơi quirky vào ngày 29 tháng 2 trong một năm nhuận khi bạn đột nhiên nhận được ngày 1 tháng 3 - nhận thức được những điều kỳ quặc như vậy khi cố gắng thao tác ngày –

Trả lời

99

Hãy thử với:

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

Xin chào, tôi cần sử dụng ví dụ này để thêm 1 năm vào một ngày, nhưng tôi đã có biến: '$ invoicedate = $ _POST ['invdate']; $ invdate = date ("Ymd", strtotime ($ invoicedate)); 'vì vậy tôi sẽ thêm dòng thứ 3' $ due = date ('Ym-d', strtotime ($ invdate, '+ 1 year')); '? – Adrian

1

Để thêm một năm để ngày ngày nay sử dụng như sau:

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

và cho năm nhuận? – suspectus

+0

Điều này thật tuyệt vời cảm ơn bạn rất nhiều :) Tôi chấp nhận một vài giây sau đó – Letter

+0

@Letter Nhìn vào câu trả lời của tôi - nó đơn giản hơn nhiều. – hsz

0

Sử dụng Carbon:

$dt = Carbon::now(); 
echo $dt->addYears(5); 
0

thử này,

$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

ngày Sửa đổibased on this post
strtotime() là thực sự mạnh mẽ và cho phép bạn sửa đổi/dễ dàng chuyển đổi ngày với nó là biểu hiện tương đối quá:

thủ tục

$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 

Những thứ bạn có thể ném vào strtotime() khá đáng ngạc nhiên và rất dễ đọc. Hãy xem ví dụ này tìm kiếm thứ ba tuần tới.

thủ tục

$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 

Lưu ý rằng những ví dụ trên đang được trả lại tương ứng với thời gian hiện nay. Danh sách đầy đủ các định dạng thời gian mà strtotime() và hàm khởi tạo DateTime được liệt kê trên PHP Supported Date and Time Formats page.

Một ví dụ khác, thích hợp cho trường hợp của bạn có thể là: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

Sử dụng mã này để thêm năm hoặc vài tháng hoặc vài ngày hoặc giờ hoặc phút hoặc giây để một ngày nhất định

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 

Bạn cũng có thể trừ thay thế + thành -

0

Rất dễ dàng với Ô tô bon. $date = "2016-02-16"; // Or Your date $newDate = Carbon::createFromFormat('Y-m-d', $date)->addYear(1);

+0

Lớp Carbon và các phương thức của nó thuộc về một công việc khung cụ thể (Laravel) và trong câu hỏi được hỏi, chúng tôi không tìm thấy bất kỳ tên khung làm việc nào thay vì nó được yêu cầu bằng cách sử dụng các hàm ngày của PHP. Tôi nghĩ rằng đó là lý do tại sao bạn không nhận được bất kỳ ngón tay cái lên :) –

-1

thử điều này:

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

Không hoàn toàn những gì đã được yêu cầu. – wonce

0
 $date = strtotime($row['timestamp']); 
     $newdate = date('d-m-Y',strtotime("+1 year",$date)); 
Các vấn đề liên quan