gpt4 book ai didi

php - 没有周末的日差

转载 作者:IT王子 更新时间:2023-10-28 23:46:18 24 4
gpt4 key购买 nike

我想计算用户输入的总日差

例如当用户输入

start_date = 2012-09-06end-date = 2012-09-11

现在我正在使用这段代码来查找差异

$count = abs(strtotime($start_date) - strtotime($end_date));
$day = $count+86400;
$total = floor($day/(60*60*24));

total 的结果是 6。但问题是我不想包括周末(周六和周日)

2012-09-06
2012-09-07
2012-09-08 Saturday
2012-09-09 Sunday
2012-09-10
2012-09-11

所以结果会是4

----更新---

我有一个包含日期的表,表名是假期

例如表包含 2012-09-07

因此,总天数为 3,因为它没有计算假期日期

我该怎么做才能使输入的日期与表中的日期相等?

最佳答案

很容易使用我的最爱:DateTime , DateIntervalDatePeriod

$start = new DateTime('2012-09-06');
$end = new DateTime('2012-09-11');
// otherwise the end date is excluded (bug?)
$end->modify('+1 day');

$interval = $end->diff($start);

// total days
$days = $interval->days;

// create an iterateable period of date (P1D equates to 1 day)
$period = new DatePeriod($start, new DateInterval('P1D'), $end);

// best stored as array, so you can add more than one
$holidays = array('2012-09-07');

foreach($period as $dt) {
$curr = $dt->format('D');

// substract if Saturday or Sunday
if ($curr == 'Sat' || $curr == 'Sun') {
$days--;
}

// (optional) for the updated question
elseif (in_array($dt->format('Y-m-d'), $holidays)) {
$days--;
}
}


echo $days; // 4

关于php - 没有周末的日差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12365461/

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