PHP: 无法获得正确年份的月份
PHP: Can't get month at the right year
对于下面的代码,我希望当前月份和接下来的 12 个月都包含年份。我为它使用了一个循环,除 "January" 外,一切正常。我只是不知道出了什么问题。
for ($i = 0; $i <= 12; $i++) {
$months[ucfirst(strftime("%B %G", strtotime( date( 'Y-m' )." +$i months")))] = ucfirst(strftime("%B %G", strtotime( date( 'Y-m' )." +$i months")));
echo ucfirst(strftime("%B %G", strtotime( date( 'Y-m' )." +$i months")));
}
回显输出:
December 2015 Januari 2015 Februari 2016 Maart 2016 April 2016 Mei 2016 Juni 2016 Juli 2016 Augustus 2016 September 2016 Oktober 2016 November 2016 December 2016
这样的事情怎么样?
<?php
$start = new DateTimeImmutable('first day of this month');
$interval = new DateInterval('P1M');
$period = new DatePeriod($start, $interval, 12);
foreach ($period as $date) {
echo $date->format('F Y') . PHP_EOL;
}
您可以简单地使用:
$date = new DateTime('first day of this month');
for ($i = 0; $i < 13; $i++) {
echo $date->format('F Y,');
$date->modify('+1 month');
}
输出将是:
December 2015, January 2016, February 2016, March 2016, April 2016, May 2016, June 2016, July 2016, August 2016, September 2016, October 2016, November 2016, December 2016,
对于下面的代码,我希望当前月份和接下来的 12 个月都包含年份。我为它使用了一个循环,除 "January" 外,一切正常。我只是不知道出了什么问题。
for ($i = 0; $i <= 12; $i++) {
$months[ucfirst(strftime("%B %G", strtotime( date( 'Y-m' )." +$i months")))] = ucfirst(strftime("%B %G", strtotime( date( 'Y-m' )." +$i months")));
echo ucfirst(strftime("%B %G", strtotime( date( 'Y-m' )." +$i months")));
}
回显输出:
December 2015 Januari 2015 Februari 2016 Maart 2016 April 2016 Mei 2016 Juni 2016 Juli 2016 Augustus 2016 September 2016 Oktober 2016 November 2016 December 2016
这样的事情怎么样?
<?php
$start = new DateTimeImmutable('first day of this month');
$interval = new DateInterval('P1M');
$period = new DatePeriod($start, $interval, 12);
foreach ($period as $date) {
echo $date->format('F Y') . PHP_EOL;
}
您可以简单地使用:
$date = new DateTime('first day of this month');
for ($i = 0; $i < 13; $i++) {
echo $date->format('F Y,');
$date->modify('+1 month');
}
输出将是:
December 2015, January 2016, February 2016, March 2016, April 2016, May 2016, June 2016, July 2016, August 2016, September 2016, October 2016, November 2016, December 2016,