2012-01-18 53 views
22

thể trùng lặp:
PHP last day of the monthNhận ngày cuối cùng của tháng?

Có chức năng như $date->getMonthDays() hoặc $date->getLastDayOfMonth() trong PHP để có được số ngày trong một tháng nhất định (hoặc số ngày cuối cùng)?

$start = new DateTime('2012-02-01'); 
$end = clone $start; 

// Interval = last day of the month minus current day in $start 
$interval = $start->getLastDayOfMonth() - intval($start->format('j')); 
$end->add(new DateInterval('P' . $interval . 'D')); 

EDIT: cảm ơn, bình chọn để đóng, đó là một bản sao, xin lỗi cho hỏi ...

+0

Tôi không biết PHP, nhưng nói chung, bạn có thể nhận ngày cuối cùng bởi có được ngày đầu tiên của tháng tiếp theo sau đó -1 –

+1

'(DateTimeObj) -> định dạng ('t');' sẽ cung cấp cho bạn số ngày trong tháng đó. –

+1

@EricYin đó là một ý tưởng hay, tôi sẽ thử nếu không có hàm PHP gốc, cảm ơn rất nhiều. – gremo

Trả lời

5

t cho bạn biết tổng số ngày trong tháng hiện tại. j cung cấp cho bạn ngày hiện tại của tháng.

Sử dụng modify và một số phép trừ từ format -ngày giờ, bạn có thể đến cuối tháng.

$date = new DateTime(); 
$lastDayOfMonth = $date->modify(
    sprintf('+%d days', $date->format('t') - $date->format('j')) 
); 
26

Rất đơn giản để có được ngày tháng cuối cùng

echo date("Y-m-t", strtotime("-1 month")) ; 
echo date("Y-m-1", strtotime("-1 month")) ; 

tại ngày 03 tháng 3 trở lại

2011-02-28 
2011-02-1 
+0

Tuyệt vời, cảm ơn! –

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