为什么我在运行以下代码时会得到两个March而不是二月然后三月?
<?php
for($i=1; $i<= 12; $i++){
//MONTH NAME
$monthName = strftime('%B', mktime(0, 0, 0, $i));
if($i <= 9){
$monthNr = "0".$i;
}
else{
$monthNr = $i;
}
echo $monthNr . ':' . ucfirst($monthName) ."\n";
}
?>
Run Code Online (Sandbox Code Playgroud)
输出:
01:January
02:March
03:March
04:April
05:May
06:June
07:July
08:August
09:September
10:October
11:November
12:December
Run Code Online (Sandbox Code Playgroud)
这是因为:
参数可以从右到左依次排除; 这样省略的任何参数将根据本地日期和时间设置为当前值.
如果当前日期大于指定月份的最后一天,则额外天数会将生成的时间戳延长到下个月.在这种情况下今天是30日,所以2月30日变成3月2日.
如果你添加一天,mktime你将得到你期望的结果.
$monthName = strftime('%B', mktime(0, 0, 0, $i, 1));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46 次 |
| 最近记录: |