我需要获取本周的每一天。
这是我到目前为止所做的,它似乎有效,但我想知道我是否可以做得更好。
$weekdays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
$days = [];
foreach($weekdays as $k => $v){
$days[$k] = date('Y-m-d', strtotime(''.$v.' 0 week'));
}
答案 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');
}