使用PHP/MySQL计算工作日和周末的数量

use*_*578 3 php mysql

我希望从MySQL数据库中检索数据,计算工作日数和周末工作天数.

来自DB的时间格式如下:2013-07-01 07:00

这是我到目前为止:

function isWeekend($date) {
    $check = date("w", strtotime($date));
        if ($check == 6 || $check == 0) {
            return 1;
        }
        else {
            return 0;
        }
}

$query = mysql_query ("SELECT date from jobcards");

while ($row = mysql_fetch_assoc($query)) {
  $date = $row['date'];
  $date_check= isWeekend($date);

  if ($date_check == 1) {
  ++$weekend;
  }
  else {
  ++$workday;
  }

}
Run Code Online (Sandbox Code Playgroud)

我需要找到一种方法来计算使用mysql的日子,有没有这样的方法或更优雅的方法来改进PHP代码?

此外,如果我在数据库中有多个具有相同日期范围但时间不同的记录:2013-07-01 07:00和2013-07-01 07:30它将被计为两个工作日,我将如何防止这种情况?

谢谢.

nra*_*aus 9

看一下WEEKDAY功能,并将其与星期日/星期六(分别)的6/5进行比较

您的SQL看起来像:

SELECT SUM(IF(WEEKDAY(date) >= 5, 1, 0) AS WeekendCount,
       SUM(IF(WEEKDAY(date) < 5, 1, 0) AS WeekdayCount
FROM jobcards
Run Code Online (Sandbox Code Playgroud)

这里有一个类似的答案:MySQL Weekday/Weekend count - Part II

修正了IF被放置在错误的位置