我希望在星期六和星期日或只有星期天不包括罚款时防止罚款计算。如果我们使用borrowdate,currentdate,并从我的数据库中完全恢复功能,我认为会更好谢谢!
$borrowdate = new Datetime($row['date_return']);
$returndate = new Datetime($row['due_date']);
$currentdate = new Datetime();
$fines = 0;
if($currentdate > $returndate){
$days = $borrowdate->diff($returndate ?? $currentdate, true)->days;
echo "₱ ". $fines = $days > 0 ? intval(floor($days)) * 15 : 0;
$fi = $row['borrow_details_id'];
mysqli_query($dbcon,"update borrowdetails set fines='$fines' where borrow_details_id = '$fi'");
}
答案 0 :(得分:0)
这样做首先找出当前日期的一天,并检查它是星期日还是星期六。从星期几返回的值将是数字。 0表示周日,周六表示6周。
$borrowdate = new Datetime($row['date_return']);
$returndate = new Datetime($row['due_date']);
$currentdate = new Datetime();
$dayofweek = date('w', $currentdate->getTimestamp());
$fines = 0;
if($currentdate > $returndate){
if($dayofweek != 0){
$days = $borrowdate->diff($returndate ?? $currentdate, true)->days;
echo "₱ ". $fines = $days > 0 ? intval(floor($days)) * 15 : 0;
$fi = $row['borrow_details_id'];
mysqli_query($dbcon,"update borrowdetails set fines='$fines' where borrow_details_id = '$fi'");
}
}
$newquery = mysqli_query($dbcon,"select fines from borrowdetails where borrow_details_id = '$fi'");
$row = mysqli_fetch_assoc($newquery);
echo $row['fines'];
答案 1 :(得分:0)
您应该计算工作天数,然后计算罚款。
$returnDate= new DateTime( '2017-08-17' );
$today= new DateTime( '2017-08-21 00:23:44' );
$returnDate->setTime(0,0);
$today->setTime(0,0);
$interval = DateInterval::createFromDateString('1 day');
$period = new DatePeriod($returnDate, $interval, $today);
$weekendDays = 0;
$totalDays = 0;
foreach ( $period as $p ) {
$totalDays++;
if($p->format( "w" )==0 or $p->format( "w" )==6) $weekendDays++; //6 - saturday, 0 - sunday
}
echo "<p>Total days: $totalDays</p><p>Weekend days: $weekendDays </p>";
$fines = ($totalDays - $weekendDays) * 15;
echo "₱ ". $fines;
$fi = $row['borrow_details_id'];
mysqli_query($dbcon,"update borrowdetails set fines='$fines' where borrow_details_id = '$fi'");