在PHP中获取过去12个月 [英] Get the last 12 months in PHP

查看:1239
本文介绍了在PHP中获取过去12个月的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以这里是我今天学到的一个有趣的问题。



从过去的一个月开始,我需要填写过去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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆