PHP确定提供的下一个起始日期是星期一还是星期四

0tdrvxhp  于 2022-11-21  发布在  PHP
关注(0)|答案(2)|浏览(167)

如果我给PHP提供一个开始日期,PHP是否能够确定下一个是星期一还是星期四,以及日期('YYYY-MM-DD')是什么?

ctehm74n

ctehm74n1#

使用给定日期计算下一个星期一和星期四的日期:

$start = new DateTimeImmutable('2023-01-08');
$monday = $start->modify("next monday");
$thursday = $start->modify("next thursday");

diffif语句配合使用,显示结果

if ( ($start->diff($monday)->days < $start->diff($thursday)->days ) ) {
    echo "monday";
} else {
    echo "thursday";
}
fslejnso

fslejnso2#

下星期一或星期四是两者中较小的一个。如果使用DateTime而不是DateTimeImmutable,则必须使用来自$start的副本(克隆)。

$start = new DateTime('2022-11-19');
$nextMondayOrThursday = Min(
  (clone $start)->modify("next monday"),
  (clone $start)->modify("next thursday")
);

echo $nextMondayOrThursday->format('l, d F Y');
//Monday, 21 November 2022

尝试自我:https://3v4l.org/Y5sE5
在数组中指定星期几的简短形式的解决方案提供了更大的灵活性。通过这种方式,还可以指定一周中的3天或更多天。

$start = date_create('2022-11-20');
$next = ['Mon','Thu','Fri'];

while(!in_array($start->modify('+1 Day')->format('D'),$next));

echo $start->format('l, d F Y');

建议通过验证$next来确保while循环不会无限期地运行。

相关问题