下面的代码给了我从今天开始的X个月以及之后的几个月,但是我希望从2012年11月1日起返回X个月,然后返回。怎么办呢?
// $nrOfMonths can be 1, 3 and 6
function GetIncidents(nrOfMonths) {
$stopDate = strtotime('-' . $nrOfMonths .' months');
... rest of the code ...
}
答案 0 :(得分:4)
你可以这样做:
$stopDate = strtotime('1st November 2012 -' . $nrOfMonths .' months');
虽然,我更喜欢这种语法:
$stopDate = strtotime("1st November 2012 - {$nrOfMonths} months");
因此,您的代码应遵循以下模式:
function GetIncidents(nrOfMonths) {
//your preferred syntax!
//the rest of your code
}
答案 1 :(得分:2)
使用DateTime
和DateInterval
类来实现此目标。
$date = new DateTime('November 1, 2012');
$interval = new DateInterval('P1M'); // A month
for($i = 1; $i <= $nrOfMonths; $i++) {
$date->sub($interval); // Subtract 1 month from the date object
echo $i . " month(s) prior to November 1, 2012 was " . $date->format('F j, Y');
}