下面的代码给了我从今天的日期和回来的 X 个月,但我想从 2012 年 11 月 1 日获得 X 个月的日期,然后回来。如何才能做到这一点?
// $nrOfMonths can be 1, 3 and 6
function GetIncidents(nrOfMonths) {
$stopDate = strtotime('-' . $nrOfMonths .' months');
... rest of the code ...
}
你可以这样做:
$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
}
使用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');
}