2009-12-17 42 views
11

Nhiều ví dụ về cách thêm ngày vào ngày này. Nhưng làm thế nào để làm điều đó, nếu tôi có ngày khác nhau?Thêm ngày vào ngày cụ thể

Ví dụ (Không làm việc):

$day='2010-01-23'; 

// add 7 days to the date above 
$NewDate= Date('$day', strtotime("+7 days")); 
echo $NewDate; 

Ví dụ ở trên không hoạt động. Làm thế nào tôi nên thay đổi ngày starding bằng cách đặt một cái gì đó khác ở vị trí của ngày?

+2

là '$ ngày' một lỗi đánh máy? bạn không quấn các biến trong dấu ngoặc kép. – TravisO

Trả lời

29

Đối với một sửa chữa rất cơ bản dựa trên mã của bạn:

$day='2010-01-23'; 

// add 7 days to the date above 
$NewDate = date('Y-m-d', strtotime($day . " +7 days")); 
echo $NewDate; 

Nếu bạn đang sử dụng PHP 5.3+, bạn có thể sử dụng DateTime mới libs rất tiện dụng:

$day = '2010-01-23'; 

// add 7 days to the date above 
$NewDate = new DateTime($day); 
$NewDate->add(new DateInterval('P7D'); 
echo $NewDate->format('Y-m-d'); 

Tôi đã hoàn toàn chuyển sang sử dụng DateTime bản thân mình ngay bây giờ vì nó rất mạnh mẽ. Bạn cũng có thể chỉ định múi giờ dễ dàng khi khởi tạo, tức là new DateTime($time, new DateTimeZone('UTC')). Bạn có thể sử dụng các phương thức add()sub() để thay đổi ngày tháng bằng các đối tượng DateInterval. Dưới đây là tài liệu hướng dẫn:

+0

$ NewDate-> add (new DateInterval ('P7D'); - bạn cần thêm một ')' ở cuối :) – mmvsbg

1

Từ php.com binupillai2003

<?php 
/* 
Add day/week/month to a particular date 
@param1 yyyy-mm-dd 
@param1 integer 
by Binu V Pillai on 2009-12-17 
*/ 

function addDate($date,$day)//add days 
{ 
$sum = strtotime(date("Y-m-d", strtotime("$date")) . " +$day days"); 
$dateTo=date('Y-m-d',$sum); 
return $dateTo; 
} 

?> 
+2

Trong khi "$ date" có thể hoạt động về mặt kỹ thuật, cú pháp của nó kém, chỉ cần nói $ date – TravisO

9
$NewDate = date('Y-m-d', strtotime('+7 days', strtotime($day))); 
+3

Điều này sẽ chỉ xuất ra giây kể từ thời đại unix. –

Các vấn đề liên quan