Php 两个日期之间的天数不同(周末除外)

Php 两个日期之间的天数不同(周末除外),php,date,mysqli,datediff,Php,Date,Mysqli,Datediff,我正在从数据库中获取两个日期之间的天数。日期从和日期到。我发现了一个错误。任何帮助都将不胜感激。 守则: <?php require('config/conn.php'); // Select all from table 'reguests' $query = 'SELECT * FROM requests'; //Results from table $result = mysqli_query($conn, $query); //

我正在从数据库中获取两个日期之间的天数。日期从和日期到。我发现了一个错误。任何帮助都将不胜感激。 守则:

<?php
    require('config/conn.php');

    // Select all from table 'reguests'
    $query = 'SELECT * FROM requests';

    //Results from table
    $result = mysqli_query($conn, $query);

    //Fetch data
    $requests = mysqli_fetch_all($result, MYSQLI_ASSOC);

    //Free result from fetch
    mysqli_free_result($result);

    //Get Days Count Between Dates From And To
    $dateFrom = $request['date_from'];
    $dateTo = $requests['date_to'];

    $daysDiff = floor(abs(strtotime($dateTo) - strtotime($dateFrom)) / (60*60*24));


    //Close conn
    mysqli_close($conn);
    ?>

输出:

<td><?php echo $daysDiff ?>

您的问题标题说要排除周末,但您的代码似乎没有尝试

为了解释像这样更复杂的逻辑,计算一个周期并用它迭代几天可能是明智的

大概是这样的:

$dateFrom=new DateTime();
$dateTo=新的日期时间(“+1个月+1秒”);//添加1s,以便期间包括最后一天。
$period=new DatePeriod($dateFrom,new DateInterval('P1D'),$dateTo);
$days=0;
foreach($期间为$日期){
$day=$date->format('l');
如果('Saturday'!==$day&'Saturday'!==$day){
$days++;
}
}
echo$days;//23

请查看您的标题,它与您的问题不明确。但要检查日期之间的差异,请查看链接上的Php手册:


如果你真的想检查一天是否是周末,请检查:

可能我会用Though谢谢百万分之一