php 使用mktime显示2012年的月份列表

yqyhoc1h  于 2023-02-15  发布在  PHP
关注(0)|答案(6)|浏览(101)

我现在面临一个问题,需要尽快解决.
我尝试使用以下代码列出当前年份(2012)的所有月份:

for ($m=1; $m<=12; $m++) {
     $month = date('F', mktime(0,0,0,$m));
     echo $month. '<br>';
     }

但我得到了以下意外输出:
一月三月三月五月五月七月七月八月十月十月十二月十二月
我做错了什么请帮帮我!!!

dkqlctbz

dkqlctbz1#

试试这个:

for ($m=1; $m<=12; $m++) {
     $month = date('F', mktime(0,0,0,$m, 1, date('Y')));
     echo $month. '<br>';
     }
5ktev3wc

5ktev3wc2#

与mktime不同,但同样强大

$array = array("January", "February",.....);
for ($m=0; $m<12; $m++) {
     echo $array[$m]. '<br>';
     }
1cklez4t

1cklez4t3#

我想你应该这样循环。

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/>";
}
70gysomp

70gysomp4#

mktime()中的day设置为1,否则进行转换:30.2.2012 = 1.3.2012

$month = date('F', mktime(0,0,0,$m,1));
wlzqhblo

wlzqhblo5#

注意本土化。
您还可以使用此

setlocale(LC_TIME, 'it_IT');
for($m=1;$m<=12;$m++){
  echo strftime("%B", mktime(0, 0, 0, $m, 12));
}

更改函数setlocale()上的参数,可以显示本地化文本。
list of setlocale codes

nfeuvbwi

nfeuvbwi6#

如果你用laravel

@for ($x = 1; $x <= 12; $x++)
<option value="{{$x}}">{{date('F', mktime(0, 0, 0, $x, 10))}}</option>
@endfor

相关问题