我目前面临的问题是需要尽快解决问题。
我试图使用以下代码列出当年(2012年)的所有月份:
for ($m=1; $m<=12; $m++) {
$month = date('F', mktime(0,0,0,$m));
echo $month. '<br>';
}
但是我得到了以下意外输出:
一月 游行 游行 可以 可以 七月 七月 八月 十月 十月 十二月 腊
我做错了什么,请帮助!!!
答案 0 :(得分:25)
试试这个:
for ($m=1; $m<=12; $m++) {
$month = date('F', mktime(0,0,0,$m, 1, date('Y')));
echo $month. '<br>';
}
答案 1 :(得分:9)
每年的月份相同
$array = array("January", "February",.....);
for ($m=0; $m<12; $m++) {
echo $array[$m]. '<br>';
}
答案 2 :(得分:4)
我猜你应该以这种方式循环它。
for($i = 1 ; $i <= 12; $i++)
{
echo date("F",strtotime(date("Y")."-".$i."-01"));
echo "<br/>";
}
或者在您的情况下,您想使用mktime()
for($i = 1 ; $i <= 12; $i++)
{
echo date("F",mktime(0,0,0,$i,1,date("Y")));
echo "<br/>";
}
答案 3 :(得分:3)
将day
中的mktime()
设置为1
,否则执行转换:30.2.2012 = 1.3.2012
$month = date('F', mktime(0,0,0,$m,1));
答案 4 :(得分:2)
注意本地化。
您也可以使用此
setlocale(LC_TIME, 'it_IT');
for($m=1;$m<=12;$m++){
echo strftime("%B", mktime(0, 0, 0, $m, 12));
}
更改函数setlocale()上的参数可以显示本地化文本。