获取该周数字下的日期



所以我遇到了一种情况,我想检索特定周号下的日期。我尝试了一些方法,但不幸的是,它们没有成功。

因此,首先我要得到我已经/选择/输入的日期的周数。

$week_number = date('W', strtotime(23/08/2022)) //Will output 34

我试图做的…但返回的日期是随机的,不是我所期望的

$dates = array();
for($i = 1; $i <=7; $i++){
$dates[$i] = date('Y-m-d', strtotime($selected_date . ' -' . ($week_number) . ' days +' . 
$i . ' days'));
}

我所期待的:

[1] => 2022-08-22
[2] => 2022-08-23
[3] => 2022-08-24
[4] => 2022-08-25
[5] => 2022-08-26
[6] => 2022-08-27
[7] => 2022-08-28

我不知道这是不是一个重复的问题,但我找不到我要找的东西。

不久前我刚刚做了一些非常类似的事情。我必须找到某一年中某一周中某一天的日期。我的解决方案是:

function getDateForWeekDay($year, $weekNo, $dayOfWeekNo)
// return the exact date of this weekday, using ISO 8601
{
$date = new DateTime();
$date->setISODate($year, $weekNo, $dayOfWeekNo);
return $date->format('Y-m-d');
}

例如,echo getDateForWeekDay(2020, 34, 1);将返回2020-08-17,请参见:https://3v4l.org/bkjUj

请参阅PHP手册:DateTime::setISODate((

您可以很容易地扩展它来生成您的数组。

for ($day = 1; $day <= 7; $day++) {
$dates[$day] = getDateForWeekDay(2020, 34, $day);
}
print_r($dates);

返回所需的结果。请参阅:https://3v4l.org/iDKOu

您可以使用它获取一周中的星期一和星期日:

$day = 1; // 1 to 6, monday to saturday.
$dayDate = new DateTime();
$dayDate->setISODate($date->format('Y'), $date->format('W'), $day);

相关内容

  • 没有找到相关文章

最新更新