获取两个日期之间的不同天数(不包括周末)
Get days different between two dates(excluding weekends)
我正在尝试从数据库中获取两个日期之间的天数。 Date_from 和 Date_to。我收到了一个错误。任何帮助,将不胜感激。
代码:
<?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 = new DateTime( '+1 month +1 second' ); // Add 1s so period includes last day.
$period = new DatePeriod( $dateFrom, new DateInterval( 'P1D' ), $dateTo );
$days = 0;
foreach ( $period as $date ) {
$day = $date->format( 'l' );
if ( 'Saturday' !== $day && 'Sunday' !== $day ) {
$days ++;
}
}
echo $days; // 23
请检查您的标题,它与您的问题有歧义。但要检查日期之间的差异,请查看 link 上的 Php 手册:http://php.net/manual/en/datetime.diff.php
如果你真的想检查某一天是否是周末,请检查:Checking if date is weekend PHP
我正在尝试从数据库中获取两个日期之间的天数。 Date_from 和 Date_to。我收到了一个错误。任何帮助,将不胜感激。 代码:
<?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 = new DateTime( '+1 month +1 second' ); // Add 1s so period includes last day.
$period = new DatePeriod( $dateFrom, new DateInterval( 'P1D' ), $dateTo );
$days = 0;
foreach ( $period as $date ) {
$day = $date->format( 'l' );
if ( 'Saturday' !== $day && 'Sunday' !== $day ) {
$days ++;
}
}
echo $days; // 23
请检查您的标题,它与您的问题有歧义。但要检查日期之间的差异,请查看 link 上的 Php 手册:http://php.net/manual/en/datetime.diff.php
如果你真的想检查某一天是否是周末,请检查:Checking if date is weekend PHP