PHP:以月份格式获取最近6个月

use*_*510 2 php format date

PHP有没有办法以下列格式获取当前和之前的5个月?

April 2014
March 2014
February 2014
January 2014
December 2013
November 2013
Run Code Online (Sandbox Code Playgroud)

Tyr*_*ori 12

你试过以下:

<?php
echo date('F, Y');
for ($i = 1; $i < 6; $i++) {
  echo date(', F Y', strtotime("-$i month"));
}
Run Code Online (Sandbox Code Playgroud)

让我知道,如果这不起作用.


小智 7

不使用:

<?php
for ($i = 0; $i <= 6; $i++) {
  echo date('F Y', strtotime(-$i . 'month'));
}
// With date e.g.: "May, 31", outputs:
// May, 2018, May 2018, March 2018, March 2018, January 2018, December 2017
Run Code Online (Sandbox Code Playgroud)

您可以通过以下方式修复它:

<?php
for ($i = 0; $i <= 6; $i++) {
  echo date('F Y', strtotime('last day of ' . -$i . 'month'));
}
Run Code Online (Sandbox Code Playgroud)

或者更好地使用 DateTime,例如:

$dateTime = new DateTime('first day of this month');
for ($i = 1; $i <= 6; $i++) {
    echo $dateTime->format('F Y');
    $dateTime->modify('-1 month');
}
Run Code Online (Sandbox Code Playgroud)