2009-05-06 53 views
23

Trong mã PHP của tôi, tôi có một ngày trong biến "$ postedDate" của tôi.
Bây giờ tôi muốn có được ngày sau 7 ngày, 15 ngày, một tháng và 2 tháng đã trôi qua.Tôi làm cách nào để có được ngày sau 15 ngày/1 tháng bằng PHP?

Tôi nên sử dụng chức năng ngày nào?

Định dạng ngày đầu ra phải ở định dạng Hoa Kỳ.

+2

Thuật ngữ mà bạn muốn Google cho là "ngày số học". –

Trả lời

34

Sử dụng strtotime.

$newDate = strtotime('+15 days',$date) 

$ newNgày bây giờ sẽ là 15 ngày sau ngày $. $ date là thời gian unix.

http://uk.php.net/strtotime

+0

Không hoạt động mã này ... – Tanmoy

17

thử này

$date = date("Y-m-d");// current date 

$date = strtotime(date("Y-m-d", strtotime($date)) . " +1 day"); 
$date = strtotime(date("Y-m-d", strtotime($date)) . " +1 week"); 
$date = strtotime(date("Y-m-d", strtotime($date)) . " +2 week"); 
$date = strtotime(date("Y-m-d", strtotime($date)) . " +1 month"); 
$date = strtotime(date("Y-m-d", strtotime($date)) . " +30 days"); 
2

Định dạng đầu vào là gì?

1) Nếu ngày của bạn là mảng, năm, tháng và ngày thì bạn có thể mktime (0, 0, 0, $ tháng, $ ngày + 15, $ năm) hoặc mktime (0, 0, 0, $ month + 1, $ day, $ year). Lưu ý rằng mktime là một hàm thông minh, sẽ xử lý các giá trị ngoài giới hạn một cách chính xác, vì vậy mktime (0, 0, 0, 13, 33, 2008) (là ngày 13, ngày 33 của năm 2008) sẽ trả lại dấu thời gian cho tháng 2 , 2, 2009.

2) Nếu ngày của bạn là dấu thời gian, thì bạn chỉ cần thêm, như, 15 * SECONDS_IN_A_DAY và sau đó xuất với ngày (/ * mọi định dạng * /, $ postedDate). Nếu bạn cần thêm một tháng 30 ngày sẽ không phải lúc nào cũng hoạt động đúng, vì vậy trước tiên bạn có thể chuyển đổi dấu thời gian thành tháng, ngày và năm (với hàm date()) và sau đó sử dụng (1).

3) Nếu ngày của bạn là một chuỗi, trước tiên bạn phân tích nó, ví dụ, với strtotime(), sau đó làm whatevee bạn thích.

13

Kể từ PHP 5.2.0 các DateTime xây dựng trong lớp có sẵn

$date = new DateTime($postedDate); 

$date->modify('+1 day'); 

echo $date->format('Y-m-d'); 

http://php.net/manual/en/class.datetime.php

+0

Cảm ơn rất nhiều. Nó giải quyết vấn đề của tôi trong vài giây. cảm ơn một lần nữa –

+0

Tôi luôn thích giải pháp này hơn tùy chọn 'strtotime'. – Peon

3

này là rất đơn giản; thử này:

$date = "2013-06-12"; // date you want to upgade 

echo $date = date("Y-m-d", strtotime($date ." +1 day")); 
9
$date=strtotime(date('Y-m-d')); // if today :2013-05-23 

$newDate = date('Y-m-d',strtotime('+15 days',$date)); 

echo $newDate; //after15 days :2013-06-07 

$newDate = date('Y-m-d',strtotime('+1 month',$date)); 

echo $newDate; // after 1 month :2013-06-23 
Các vấn đề liên quan