这是一个基本的概念验证脚本:
<?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 />";
}
Run Code Online (Sandbox Code Playgroud)
我得到的输出是:
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
Run Code Online (Sandbox Code Playgroud)
这让我很伤心,因为它刚刚停止显示二月,并开始显示三月.
Pek*_*ica 10
您使用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 ]]]]]]] )
Run Code Online (Sandbox Code Playgroud)
如果不指定$day和$year,他们将默认为今天的日期.
今天是30日,2月份不存在.
这将有效:
echo date('F', mktime(0,0,0,$i,1,2011)) . " | ";
Run Code Online (Sandbox Code Playgroud)