gpt4 book ai didi

php - 从日期范围中删除周末

转载 作者:可可西里 更新时间:2023-11-01 00:55:19 26 4
gpt4 key购买 nike

我正在使用 this answer帮助我,但需要将其解决到我的问题中。

我想计算两个日期之间的天数,然后删除周末。我怎样才能结合以下两个答案?

日期 1 是 06.10.2017,日期 2 是 09.10.2017。

$date1 = new DateTime(get_sub_field('start_date'));
$date2 = new DateTime(get_sub_field('end_date'));

$diff = $date2->diff($date1)->format("%a");
echo $diff;

这给了 3 天。我希望它显示 1,因为那里有一个周末。所以我需要将它与以下内容结合起来:

下一个答案将删除所有周末:

function countDays($year, $month, $ignore) {
$count = 0;
$counter = mktime(0, 0, 0, $month, 1, $year);
while (date("n", $counter) == $month) {
if (in_array(date("w", $counter), $ignore) == false) {
$count++;
}
$counter = strtotime("+1 day", $counter);
}
return $count;
}
echo countDays(2017, 10, array(0, 6)); // 22

10 月份有 22 个工作日

我如何结合这两个答案来显示两个日期之间的天数但删除周末?

最佳答案

PHP 日期和时间类非常强大。

我会使用 DateIntervalDatePeriod

$start = new DateTime('2017-10-06');
$end = new DateTime('2017-10-09');
$interval = DateInterval::createFromDateString('1 day');
$period = new DatePeriod($start, $interval, $end);

$businessDays = 0;
foreach ($period as $day) {
// $day is not saturday nor sunday
if (! in_array($day->format('w'), [0, 6])) {
$businessDays++;
}
}

echo $businessDays; // prints 1

关于php - 从日期范围中删除周末,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46936482/

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