0

下面的代码给了我从今天的日期和回来的 X 个月,但我想从 2012 年 11 月 1 日获得 X 个月的日期,然后回来。如何才能做到这一点?

// $nrOfMonths can be 1, 3 and 6

function GetIncidents(nrOfMonths) {

    $stopDate = strtotime('-' . $nrOfMonths .' months');

    ... rest of the code ...
}
4

2 回答 2

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

}
于 2013-01-19T13:00:52.153 回答
2

使用DateTimeDateInterval类来实现这一点。

$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');
}
于 2013-01-19T13:02:46.747 回答