如何在PHP中获得前3个月

时间:2010-12-21 07:49:16

标签: php

如何在php ex中获得前3个月(如果我说DEC ..它应显示前3个月,即OCT NOV DEC)

4 个答案:

答案 0 :(得分:9)

您可以使用strtotime这样的功能:

echo date('M', strtotime('-3 month'));

所以你用减号指定以前的日期。

echo date('M', strtotime('0 month'));
echo date('M', strtotime('-1 month'));
echo date('M', strtotime('-2 month'));
echo date('M', strtotime('-3 month'));

<强>结果:

Dec
Nov
Oct
Sep

如果你使用这样的循环,你也可以这样做:

for ($i = -3; $i <= 0; $i++){
  echo date('M', strtotime("$i month"));
}

<强>结果:

Sep
Oct
Nov
Dec

查看文档,还可以看到strtotime支持的许多其他友好日期和时间关键字:

答案 1 :(得分:0)

    $month = date('M');
    $year = date('Y');
    $no_of_mnths = date('n',strtotime("-2 months"));
    $remaining_months = (12 - $no_of_mnths)."\r\n";
    $tot = $remaining_months+1; 
    for($j=0;$j<$tot;$j++){
            echo  date('M',strtotime(''.$no_of_mnths.' months'))        
            $no_of_mnths++;         
    }

答案 2 :(得分:0)

这可能会帮助你

<?php
    $date = explode("-", "2016-08-31");
   if($date[2]== "01"){$days = "-0 days";}else{$days = "-1 days";}
        $time = strtotime($days, mktime(0, 0, 0, $date[1], $date[2], $date[0]));
        $MTD = date('Y-m-01', strtotime('0 month'));
        $M1 = date('Y-m-01', strtotime('-1 month'));
        $M2 = date('Y-m-01', strtotime('-2 month'));
        $M3 = date('Y-m-01', strtotime('-3 month'));    
$rng = array();
        $rng[$MTD] = strftime("%B, %Y", strtotime(" ", $time));
        $rng[$M1] = strftime("%B, %Y", strtotime("first day of previous month",    $time));
        $rng[$M2] = strftime("%B, %Y", strtotime("-2 months", $time));
        $rng[$M3] = strftime("%B, %Y", strtotime("-3 months", $time));
?>

这里$ MTD,$ M1,$ M2,$ M3将以&#34; dd-mm-yyyy&#34;的形式给出日期。和$ rng [$ MTD],$ rng [$ M1],$ rng [$ M2],$ rng [$ M3]以&#34;月份名称,年份和#34;的形式给出日期。 =&GT; (即2016年8月)

答案 3 :(得分:0)

投票答案几乎是正确的。

正确的解决方法是:

for ($i = -3; $i <= 0; $i++){
   echo date('M', strtotime("$i month", strtotime(date("Y-m-15"))));
}

说明:strtotime的默认实现是:

date ( string $format [, int $timestamp = time() ] ) : string

如您所见,存在时间戳记,其默认值为time()。

最后说今天是3月31日。

因为没有2月31日

echo date('M', strtotime("-1 month"));

将返回三月

另一方面:

echo date('M', strtotime("+1 month"));

将返回五月(将跳过四月)。

由于该问题,我们必须设置时间戳记值(即保存日期)。 保存1-28之间的每个日期,因为每个月都有该日期。在我的示例中,我选择了每月的第15天。