下面的代碼給了我X個從今天的日期和回來的月份,但是我想從2012年11月1日開始計算X個月的日期並返回。如何才能做到這一點?從上一個日期開始計算X個月
// $nrOfMonths can be 1, 3 and 6
function GetIncidents(nrOfMonths) {
$stopDate = strtotime('-' . $nrOfMonths .' months');
... rest of the code ...
}
下面的代碼給了我X個從今天的日期和回來的月份,但是我想從2012年11月1日開始計算X個月的日期並返回。如何才能做到這一點?從上一個日期開始計算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
}
您也可以將第二個參數傳遞給'strtotime'來表示相對日期的基準時間戳。雖然'DateTime'方法似乎更合適。 –
函數GetIncidents(nrOfMonths,dateX =「2012年11月1日」){ $ stopDate = strtotime($ dateX' - '。$ nrOfMonths。'months'); ...其餘代碼... }看起來更好 – dmi3y
使用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');
}
[相對語句總是在非相對語句後處理。這使得「2008年7月+1周」和「2008年7月+1周」相當。](http://php.net/manual/en/datetime.formats.relative.php)因此,使用「2012年11月1日 - $ nrofmonths幾個月「 – Gordon