获取当前一周的每一天

时间:2021-03-22 18:25:11

标签: php date

我需要获取本周的每一天。

这是我到目前为止所做的,它似乎有效,但我想知道我是否可以做得更好。

$weekdays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
$days = [];
foreach($weekdays as $k => $v){
    $days[$k] = date('Y-m-d', strtotime(''.$v.' 0 week'));
}

2 个答案:

答案 0 :(得分:0)

例如使用 \DateTime 对象和 modify 方法:

<?php
$days = [];
$date = new \DateTime();
$date->modify('this week monday');
for ($i = 0; $i < 7; $i++) {
    $days[$i] = $date->format('Y-m-d');
    $date->modify('+1 day');
}

在代码中,我们将日期对象设置为当前周的星期一,然后通过在每次迭代中将日期移至下一天来循环它 7 次。

DateTime::modify is here 支持格式的完整列表。

答案 1 :(得分:0)

您不需要包含星期几的数组。

$days = [];
for($i=0;$i<7;$i++){
    $days[$i] = date('Y-m-d', strtotime("Monday this week +$i days"));
}

与日期时间相同:

$days = [];
for($i=0;$i<7;$i++){
    $days[$i] = date_create("Monday this week +$i days")->format('Y-m-d');
}
相关问题