2010-01-02 50 views
61

Tôi đã có một ngày ở định dạng này:Ngày trừ 1 năm?

2009-01-01 

Làm thế nào để trở về cùng ngày nhưng 1 năm trước?

+0

Đừng quên xu hướng các vấn đề ngữ nghĩa của những gì bạn có ý nghĩa bởi "một năm" w.r.t. sau những năm nhuận. Trừ 365 ngày từ 2008-02-28 sẽ cung cấp cho bạn 2007-02-28, trong khi trừ 365 ngày từ 2008-02-29 sẽ cung cấp cho bạn 2007-03-31. – HostileFork

+0

Tôi đoán rằng nó rất nhiều phụ thuộc vào những gì "trừ một năm" có nghĩa là. Bạn có thể có nghĩa là cùng một tháng và ngày nhưng một năm trước đó hoặc tháng và ngày sau khi trừ đi 365 ngày như là điểm lưu trữ. –

Trả lời

96

Bạn có thể sử dụng strtotime:

$date = strtotime('2010-01-01 -1 year'); 

Chức năng strtotime trả về một dấu thời gian unix, để có được một chuỗi định dạng, bạn có thể sử dụng date:

echo date('Y-m-d', $date); // echoes '2009-01-01' 
69

Sử dụng strtotime() chức năng:

$time = strtotime("-1 year", time()); 
    $date = date("Y-m-d", $time); 
8
// set your date here 
$mydate = "2009-01-01"; 

/* strtotime accepts two parameters. 
The first parameter tells what it should compute. 
The second parameter defines what source date it should use. */ 
$lastyear = strtotime("-1 year", strtotime($mydate)); 

// format and display the computed date 
echo date("Y-m-d", $lastyear); 
.210
31

Sử dụng các đối tượng DateTime ...

$time = new DateTime('2099-01-01'); 
$newtime = $time->modify('-1 year')->format('Y-m-d'); 

Hoặc sử dụng hiện nay cho ngày hôm nay

$time = new DateTime('now'); 
$newtime = $time->modify('-1 year')->format('Y-m-d'); 
12

một cách đơn giản nhất mà tôi được sử dụng và làm việc tốt

date('Y-m-d', strtotime('-1 year')); 

này làm việc hoàn hảo .. hy vọng điều này cũng sẽ giúp người khác quá .. :)

0

Bạn có thể sử dụng followi ng chức năng trừ 1 hoặc bất kỳ năm nào từ một ngày.

function yearstodate($years) { 

     $now = date("Y-m-d"); 
     $now = explode('-', $now); 
     $year = $now[0]; 
     $month = $now[1]; 
     $day = $now[2]; 
     $converted_year = $year - $years; 
     echo $now = $converted_year."-".$month."-".$day; 

    } 

$number_to_subtract = "1"; 
echo yearstodate($number_to_subtract); 

Và nhìn vào ví dụ trên, bạn cũng có thể sử dụng

$user_age_min = "-"."1"; 
echo date('Y-m-d', strtotime($user_age_min.'year')); 
Các vấn đề liên quan