我正在尝试使用date()
for循环显示月份缩短名称。但它不想返回所有月份名称,而只是返回Jan
的第一个月名称。
for($d=1; $d<=12; $d++){
if($d < 10) {
$s = 0 . $d;
echo date("M", $s) . '<br/>';
}
}
它将返回:
Jan
Jan
Jan
Jan
Jan
Jan
Jan
Jan
Jan
Jan
我不知道为什么变量$d
的值如果位于date()
函数内,则不会递增。
有人可以在这解释一下为什么会这样吗?
最好的问候
答案 0 :(得分:1)
Date()要求时间戳作为第二个参数,而不是您提供的“月号”。因此,对于Unix纪元的1-12秒,月份将是1月。
答案 1 :(得分:1)
for($d=1; $d<=12; $d++){
$myDate = mktime(1,1,1,$d,1,2014);
echo date("M", $myDate) . '<br/>';
}
这已经过测试。输出:
扬 二月 损伤 四月 可以 君 七月 八月 九月 十月 十一月 癸
...
基本上,date()函数的第二个参数需要是一个时间戳(以秒为单位)。
mktime()函数将根据您提供的小时/分钟/秒/月/日/年创建时间戳。
答案 2 :(得分:1)
如果您想从当前日期打印未来12个月,这将对您有所帮助。
<?php
for ($m=1; $m<=12; $m++) {
$month = date('F', mktime(0,0,0,$m, 1, date('Y')));
echo $month. '<br>';
}
?>
您正在做的只是循环当前日12次并在每次迭代中打印相同的日期月份。这就是为什么你得到同一个月。
答案 3 :(得分:0)
for ($m=1; $m<=12; $m++) {
$month = date('M', strtotime("2014-$m-01"));
echo $month. '<br>';
}