gpt4 book ai didi

php - 如何获得两个日期之间的星期日日期

转载 作者:行者123 更新时间:2023-12-05 08:42:52 27 4
gpt4 key购买 nike

我试试这个

<?php
$startdate = '2016-07-15';
$enddate = '2016-07-17';
$sundays = [];
$startweek=date("W",strtotime($startdate));
$endweek=date("W",strtotime($enddate));
$year=date("Y",strtotime($startdate));

for($i=$startweek;$i<=$endweek;$i++) {
$result=$this->getWeek($i,$year);
if($result>$startdate && $result<$enddate) {
$sundays[] = $result;
}
}
print_r($sundays);

public function getWeek($week, $year)
{
$dto = new \DateTime();
$result = $dto->setISODate($year, $week, 0)->format('Y-m-d');
return $result;
}
?>

这返回空白数组。但在两个日期之间 2016-07-17 是星期日。

我得到的输出为 2016-07-17

我引用这个here但是在这个链接中,返回的输出是星期日的编号而不是日期。

最佳答案

试一试:

$startDate = new DateTime('2016-07-15');
$endDate = new DateTime('2016-07-17');

$sundays = array();

while ($startDate <= $endDate) {
if ($startDate->format('w') == 0) {
$sundays[] = $startDate->format('Y-m-d');
}

$startDate->modify('+1 day');
}

var_dump($sundays);

如果您稍后想使用 DateTime 对象而不是格式化日期,那么您必须为 $startDate 变量使用 DateTimeImmutable:

$startDate = new DateTimeImmutable('2016-07-15');
$endDate = new DateTimeImmutable('2016-07-17');

$sundays = array();

while ($startDate <= $endDate) {
if ($startDate->format('w') == 0) {
$sundays[] = $startDate;
}

$startDate->modify('+1 day');
}

var_dump($sundays);

关于php - 如何获得两个日期之间的星期日日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37411281/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com