在PHP中获取过去12个月 [英] Get the last 12 months in PHP
问题描述
所以这里是我今天学到的一个有趣的问题。
从过去的一个月开始,我需要填写过去12个月的数组。所以在2011年8月,过去12个月将是2010年9月 - 2011年7月。为此,我使用:
for ($ i = 1; $ i< = 12; $ i ++)
$ months [] = date(Ym%,strtotime( - $ i months));
上面的代码在8月30日工作正常。我得到过去12个月:
array
0 => string'2011-07%'(length = 8)
1 => string'2011-06%'(length = 8)
2 =>字符串'2011-05%'(length = 8)
3 => string'2011-04%'(length = 8)
4 => string'2011-03%'(length = 8)
5 =>字符串'2011-02%'(length = 8)
6 => string'2011-01%'(length = 8)
7 => string'2010-12%'(length = 8)
8 => string'2010-11%'(length = 8)
9 =>字符串'2010-10%'(length = 8)
10 => string'2010-09%'(length = 8)
11 =>字符串'2010-08%'(长度= 8)
但是当我在8月31日运行它时,我得到:
array
0 => string'2011-07%'(length = 8)
1 => string'2011-07%'(length = 8)
2 =>字符串'2011-05%'(length = 8)
3 =>字符串'2011-05%'(length = 8)
4 => string'2011-03%'(length = 8)
5 => string'2011-03%'(length = 8)
6 => string'2011-01%'(length = 8)
7 => string'2010-12%'(length = 8)
8 => string'2010-12%'(length = 8)
9 =>字符串'2010-10%'(length = 8)
10 => string'2010-10%'(length = 8)
11 =>字符串'2010-08%'(长度= 8)
我已经尝试过Windows和Unix。有人有解决方案吗?
我相信有人有一个更优雅的解决方案,但你可以开始倒数从$ 1 $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $
$ months [] = date(Ym%,strtotime(date('Ym-01')。 - $ i months));
}
So here is an interesting problem I learned today.
I need to populate an array with the last 12 months, starting with the past month. So in August 2011, the last 12 months will be Sep 2010 - July 2011. To do this, I am using:
for ($i = 1; $i <= 12; $i++)
$months[] = date("Y-m%", strtotime("-$i months"));
The code above works just fine on August 30. I get the last 12 months:
array
0 => string '2011-07%' (length=8)
1 => string '2011-06%' (length=8)
2 => string '2011-05%' (length=8)
3 => string '2011-04%' (length=8)
4 => string '2011-03%' (length=8)
5 => string '2011-02%' (length=8)
6 => string '2011-01%' (length=8)
7 => string '2010-12%' (length=8)
8 => string '2010-11%' (length=8)
9 => string '2010-10%' (length=8)
10 => string '2010-09%' (length=8)
11 => string '2010-08%' (length=8)
But when I run this on Aug 31, I get:
array
0 => string '2011-07%' (length=8)
1 => string '2011-07%' (length=8)
2 => string '2011-05%' (length=8)
3 => string '2011-05%' (length=8)
4 => string '2011-03%' (length=8)
5 => string '2011-03%' (length=8)
6 => string '2011-01%' (length=8)
7 => string '2010-12%' (length=8)
8 => string '2010-12%' (length=8)
9 => string '2010-10%' (length=8)
10 => string '2010-10%' (length=8)
11 => string '2010-08%' (length=8)
I have tried both Windows and Unix. Does anyone have a solution for this?
I'm sure someone has a more elegant solution, but you could start counting backwards from the 1st of this month.
for ($i = 1; $i <= 12; $i++) {
$months[] = date("Y-m%", strtotime( date( 'Y-m-01' )." -$i months"));
}
这篇关于在PHP中获取过去12个月的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!