2 回答

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個(gè)贊
我不喜歡你如何定義$start和$end。如果我沒(méi)記錯(cuò)的話,如果服務(wù)器時(shí)鐘恰好在定義的兩個(gè)變量之間滴答到下一秒,那么您的間隔將是 3 天 23 小時(shí) 59 分鐘 59 秒,而不是正好 4 天。這會(huì)打亂你對(duì)$diff->daysto be3而不是 的定義4,導(dǎo)致日期缺失。
我在這里建議采用不同的方法。具體來(lái)說(shuō),從當(dāng)前日期開(kāi)始,減去一天所需的次數(shù) - 因?yàn)檫@似乎被硬編碼為 5。
$date = new DateTime();
$interval = new DateInterval("P1D");
for( $i=0; $i<5; $i++) {
$date->sub($interval);
echo $date->format("Y-m-d")."\n";
}
$i<5當(dāng)然,可以將其重構(gòu)$i < DAYS為一些適當(dāng)?shù)某A慷x,以避免“幻數(shù)”并允許在未來(lái)的開(kāi)發(fā)中進(jìn)行更改。

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個(gè)贊
使用 DateTime(以及 strtotime),可以處理“今天 -3 天”等表達(dá)式。今天始終是 00:00。計(jì)算可以簡(jiǎn)化如下:
$days = 5;
for( $i=1; $i<=$days; $i++) {
echo date_create("today -$i days")->format('Y-m-d')."<br>\n";
}
- 2 回答
- 0 關(guān)注
- 191 瀏覽
添加回答
舉報(bào)