这是一个基本的概念验证脚本:
<?php
for($i = 1; $i < 13; $i++)
{
echo 'Using ' . $i . ' | ';
echo date('F', mktime(0,0,0,$i)) . " | ";
echo date('F', strtotime('2011-' . $i . '-01')) . "<br />";
}
我得到的输出是:
Using 1 | January | January
Using 2 | March | February
Using 3 | March | March
Using 4 | April | April
Using 5 | May | May
Using 6 | June | June
Using 7 | July | July
Using 8 | August | August
Using 9 | September | September
Using 10 | October | October
Using 11 | November | November
Using 12 | December | December
二月发生了什么??
这让我很难受,因为它刚刚停止显示二月并开始显示三月。
最佳答案
您正在使用 mktime()
不正确。
int mktime ([ int $hour = date("H")
[, int $minute = date("i")
[, int $second = date("s")
[, int $month = date("n")
[, int $day = date("j") <------------ here
[, int $year = date("Y") <------------ and here
[, int $is_dst = -1 ]]]]]]] )
如果您不指定 $day
和 $year
,它们将默认为 今天的日期。
今天是30号,二月不存在。
这会起作用:
echo date('F', mktime(0,0,0,$i,1,2011)) . " | ";
关于php - Bonkers PHP 几个月?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5488979/