我想一個解決辦法是通過獲得對應於上週一的時間戳,使用strtotime
開始:
$timestampFirstDay = strtotime('last monday');
但是,如果你試圖用今天(星期四),像這樣的東西:
$timestampFirstDay = strtotime('last thursday');
var_dump(date('Y-m-d', $timestampFirstDay));
你會得到:
string '2010-02-18' (length=10)
即上週...有關的strtotime,「最後」指 「今天之前的一個」。
這意味着你必須測試,如果今天是作爲返回由strtotime
加壹周「上週一」 - 而且,如果是這樣,添加一個本週賽事
這裏是一個可能的(有可能是聰明的想法)解決方案:
$timestampFirstDay = strtotime('last monday');
if (date('Y-m-d', $timestampFirstDay) == date('Y-m-d', time() - 7*24*3600)) {
// we are that day... => add one week
$timestampFirstDay += 7 * 24 * 3600;
}
而現在,我們有「上週一」的時間戳,我們可以寫一個簡單for
迴路循環7次,每次增加1天,這樣的:
$currentDay = $timestampFirstDay;
for ($i = 0 ; $i < 7 ; $i++) {
echo date('Y-m-d', $currentDay) . '<br />';
$currentDay += 24 * 3600;
}
這將給我們這樣的輸出:
2010-02-22
2010-02-23
2010-02-24
2010-02-25
2010-02-26
2010-02-27
2010-02-28
現在,你來:
- 修改
for
循環,因此存儲陣列中的
- 決定你婉哪種格式的日期噸至使用的
date
功能
有樂趣;-)
你是男人! –
請注意,此方法不適用於時鍾變化,例如一週可能會多於或少於7 * 24 * 3600秒。 – Tom