下面的sn-p应该根据你输入的星期给你前几天:
$weeks = 1;
$weekdays = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'];
$first_day_current_year = mktime(0, 0, 0, 1, 1, date('Y', time())); // d/m/Y H:i:s => 01/01/YYYY 00:00:00
$n_weeks_after = strtotime('+ '. $weeks . ' week', $first_day_current_year); // d/m/Y H:i:s => 08/01/YYYY 00:00:00
$result = ['reference date' => date('l, d/m/Y, H:i:s', $n_weeks_after)];
foreach ($weekdays as $day) {
$weekday = strtotime('previous ' . $day, $n_weeks_after);
$result['previous ' . $day] = date('l, d/m/Y, H:i:s', $weekday);
}
echo '<pre>';
print_r($result);
echo '</pre>';
在这个例子中,我设置了$weeks = 1,所以它的范围是从 1 月 1 日(星期四)到 1 月 7 日(星期三)。
下面的输出:
Array
(
[reference date] => Thursday, 08/01/2015, 00:00:00
[previous monday] => Monday, 05/01/2015, 00:00:00
[previous tuesday] => Tuesday, 06/01/2015, 00:00:00
[previous wednesday] => Wednesday, 07/01/2015, 00:00:00
[previous thursday] => Thursday, 01/01/2015, 00:00:00
[previous friday] => Friday, 02/01/2015, 00:00:00
[previous saturday] => Saturday, 03/01/2015, 00:00:00
[previous sunday] => Sunday, 04/01/2015, 00:00:00
)
对于当前一周,您可以将$weeks 设置为:
$weeks = date('W', time()); // ISO-8601 week number of year, weeks starting on Monday (added in PHP 4.1.0)
你可以在这里测试它:http://www.writephponline.com/