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

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