根据今天的月份,试图回到我的WordPress网站3个月。 1)这个月 2)下个月 3)第三个月。
我有一个包含月份名称的数组:
$months = [
'January',
'February',
'March',
'April',
'May',
'June',
'July',
'August',
'September',
'October',
'November',
'December'
];
打印当月:
<?php echo $months[(int)date('m')-1]; ?>
要在下个月打印出来:
<?php echo $months[((int)date('m') == 12 ? 1 : (int)date('m') + 1)-1]; ?>
两者如果这些工作都很好。但是当我试图打印出第三个月而不是一月份时,我得到二月份。你能帮我找出原因吗?
<?php echo $months[((int)date('m') == 11 ? 1 : (int)date('m') == 12 ? 2 : (int)date('m') + 2)-1]; ?>
我得到答案0,所以它应该是1月,但似乎
(int)date(&#39; m&#39;)== 12? 2
部分被执行,而不是第一个。
答案 0 :(得分:1)
可能因为您的三元运算符评估错误 你也不需要强制转换为整数,因为php会为你做这件事。
echo $months[(date('m') == 11 ? 1 : (date('m') == 12 ? 2 : date('m') + 2))-1];
输出:1月。
看到我做的改变?我在date('m') == 12 ? 2 : date('m') + 2
附近添加了()
答案 1 :(得分:1)
最简单的方法是使用PHP内置日期函数来实现这一点,我的意思是为什么要重新发明轮子?
$now = date('Y-m-1');
echo date('m');
echo date('m', strtotime($now . ' + 1 month'));
echo date('m', strtotime($now. ' + 2 month'));
答案 2 :(得分:1)