Why this list just go up to september?
我有这个密码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
因为我想写一个类型的列表
二千零一十三
- 一月
- 二月
- 三月
- 四月
- 五月
- 六月
- 七月
- 八月
- 九月
- 十月
- 十一月
- 十二月
到本年和本月
但是每年的每个月都要到九月,为什么?
您必须从此处更改if语句:
1 |
对此:
1 2 |
有关
因为201410>21049。这就是当您将
1 2 3 4 5 6 7 8 9 10 11 | $startYear = 2011; $start = (new DateTime())->setDate($startYear,1,1); $end = (new DateTime())->setDate($startYear,1,1)->modify('+1 year'); $interval = new DateInterval('P1M'); $period = new DatePeriod($start, $interval, $end); foreach ($period as $dt) { echo $dt->format('F') ." "; } |
演示
如果您使用的是php 5.5+,它会更干净一点。
1 2 3 4 5 6 7 8 9 10 11 | $startYear = 2011; $start = (new DateTimeImmutable())->setDate($startYear,1,1); $end = $start->modify('+1 year'); $interval = new DateInterval('P1M'); $period = new DatePeriod($start, $interval, $end); foreach ($period as $dt) { echo $dt->format('F') ." "; } |
演示
我编辑了我的代码,将一个前导零添加到表示月份号的变量中,编辑了当前日期从日期("yn")到日期("ym")并开始工作。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
谢谢你们的回答。