2011-11-24 27 views

回答

1

使用新的日期/時間類,你可以做到以下幾點:

$p = new DatePeriod(
    new DateTime('now'), 
    DateInterval::createFromDateString('-1 day'), 
    7, 
    DatePeriod::EXCLUDE_START_DATE 
); 
foreach ($p as $t) { 
    echo $t->format('Y-m-d') . '<br />'; 
} 

DatePeriodDateTimeDateInterval

+0

謝謝,我想知道liquorvicar的方式可以跑得更快嗎? – Shamrocker

+0

酒液顯示的方式更快 - 當然。上面的解決方案更加靈活,支持不同的時區,在Unix時間戳範圍之外工作,並且可以更正確地處理DST更改。 –

0
$timestamp = time() - (7*60*60*24); 

echo date('Y-m-d',$timestamp); 
+0

對不起,只能得到一個值,我想得到某個值的日期 – Shamrocker

+0

然後你只需使用mktime或其他函數從你的日期創建一個時間戳。但我會去喝酒版本。 – OptimusCrime

3

如果我正在讀你的權利,你希望在過去七天的每一天。像這樣的東西會工作:

$today = time(); 
for($daysAgo = 1; $daysAgo <= 7; $daysAgo++) { 
    echo date('Y-m-d', strtotime("-$daysAgo days", $today)) . '<br />'; 
} 
+0

這是工作,但我想讓它更容易。 – Shamrocker

相關問題