如何在php ex中获得前3个月(如果我说DEC ..它应显示前3个月,即OCT NOV DEC)
答案 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天。