2016-08-03 22 views

Trả lời

11
<?php 
    echo $newdate = date("m-Y", strtotime("-1 months")); 

đầu ra

07-2016 
+0

N.B .: trước khi sử dụng ví dụ này, hãy đọc cảnh báo về các trường hợp cạnh bên dưới –

3

Hãy thử điều này,

$today = date('m-Y'); 
$newdate = date('m-Y', strtotime('-1 months', strtotime($today))); 
echo $newdate; 
+0

nên có bao gồm rằng điều này là vòng lặp xung quanh như tôi muốn có được 12 tháng qua bắt đầu từ tháng hiện tại. – Grant

+0

Bạn có thể sử dụng nó trong vòng –

1

Tùy thuộc vào phiên bản PHP của bạn, bạn có thể sử dụng DateTime đối tượng (được giới thiệu trong PHP 5.2 nếu tôi nhớ chính xác):

<?php 
$today = new DateTime(); // This will create a DateTime object with the current date 
$today->modify('-1 month'); 

Bạn có thể chuyển một ngày khác cho constructor, nó không phải là ngày hiện tại. Thông tin thêm: http://php.net/manual/en/datetime.modify.php

2

Cảnh báo! Các ví dụ nêu trên sẽ không hoạt động nếu gọi cho chúng vào cuối tháng.

<?php 
$now = mktime(0, 0, 0, 10, 31, 2017); 
echo date("m-Y", $now)."\n"; 
echo date("m-Y", strtotime("-1 months", $now))."\n"; 

chí đầu ra:

10-2017 
10-2017 

Ví dụ sau sẽ tạo ra kết quả tương tự:

$date = new DateTime('2017-10-31 00:00:00'); 
echo $date->format('m-Y')."\n"; 
$date->modify('-1 month'); 
echo $date->format('m-Y')."\n"; 

Rất nhiều cách làm thế nào để giải quyết vấn đề này có thể được tìm thấy trong thread khác: PHP DateTime::modify adding and subtracting months

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