2016-08-03 19 views

Odpowiedz

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

wyjście

07-2016 
+0

N.B .: przed użyciem tego przykładu przeczytaj ostrzeżenie o przypadkach krawędzi poniżej –

3

Spróbuj tego,

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

powinny zawierać to, że jest to pętla, ponieważ chcę uzyskać ostatnie 12 miesięcy, począwszy od bieżącego miesiąca. – Grant

+0

Możesz go użyć w pętli –

1

zależności od wersji PHP można użyć obiektu DateTime (wprowadzone w PHP 5.2, o ile dobrze pamiętam):

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

Możesz podać inną datę konstruktor, nie musi to być bieżąca data. Więcej informacji: http://php.net/manual/en/datetime.modify.php

2

Ostrzeżenie! Powyższe przykłady nie zadziałają, jeśli zadzwonią pod koniec miesiąca.

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

wyjście wola:

10-2017 
10-2017 

Poniższy przykład będzie produkować ten sam wynik:

$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"; 

mnóstwo sposobów, jak rozwiązać ten problem można znaleźć w innym wątku: PHP DateTime::modify adding and subtracting months