从PHP获取下周的日期

Joh*_*ner 6 php date strtotime

我想要echo下周的Mo,Tu,We,Th,Fr,Sa,Su的日期.

我的代码目前看起来像这样:

$date_monday = date("Y-m-d", strtotime('next monday'));
$date_tuesday = date("Y-m-d", strtotime('next tuesday'));
$date_wednesday = date("Y-m-d", strtotime('next wednesday'));
$date_thursday = date("Y-m-d", strtotime('next thursday'));
$date_friday = date("Y-m-d", strtotime('next friday'));
$date_saturday = date("Y-m-d", strtotime('next saturday'));
$date_sunday = date("Y-m-d", strtotime('next sunday'));
Run Code Online (Sandbox Code Playgroud)

问题是,例如日期sunday是错误的,因为下一个星期日是明天,但我想要从下周的星期日开始的日期.

有没有办法将PHP日期设置为星期日并计算新日期的天数?

Gla*_*vić 9

这可以通过DateTime类轻松实现:

$dt = new DateTime();
// create DateTime object with current time

$dt->setISODate($dt->format('o'), $dt->format('W') + 1);
// set object to Monday on next week

$periods = new DatePeriod($dt, new DateInterval('P1D'), 6);
// get all 1day periods from Monday to +6 days

$days = iterator_to_array($periods);
// convert DatePeriod object to array

print_r($days);
// $days[0] is Monday, ..., $days[6] is Sunday
// to format selected date do: $days[1]->format('Y-m-d');
Run Code Online (Sandbox Code Playgroud)

演示