2019-02-15 8:30:00 ~ 2019-02-16 8:30:00의 특별 요금이 $400 인 예약 시스템이 있습니다. 객실의 정상 요금은 $360입니다. 추가 시간 요금은 $30입니다. 누군가 2019-02-14 08:30:00 ~ 2019-02-17 11:30:00에 예약하면 금액을 어떻게 계산합니까? mysql PHP를 도와주세요.
테이블 #room
+----+--------+------+-----------+
| ID | room | rate | hrly_rate |
+----+--------+------+-----------+
| 1 | room 1 | 360 | 30 |
+----+--------+------+-----------+
표 #special_calendar
+----+--------+------+--------------------+--------------------+
| ID | room | rate | start_date | end_date |
+----+--------+------+--------------------+--------------------+
| 1 | room 1 | 400 | 2019-02-15 8:30:00 | 2019-02-16 8:30:00 |
+----+--------+------+--------------------+--------------------+
예상 출력 :-
Iteration 1: 2019-02-14 08:30:00 - 2019-02-15 08:30:00 Amount $360
Iteration 2: 2019-02-15 08:30:00 - 2019-02-16 08:30:00 Amount $400
Iteration 3: 2019-02-16 08:30:00 - 2019-02-17 08:30:00 Amount $360
Iteration 4: 2019-02-17 08:30:00 - 2019-02-17 11:30:00 Amount $90 (3 X hourly rate)
Total Amount: 1210
예약을 위해 텍스트 상자에서 입력을 받고 있습니다.
Check in: 2019-02-14 08:30:00
Checkout: 2019-02-17 11:30:00
<시간>
코드 아래에 있지만 500 오류가 발생합니다
$amt=0;
$chekin_date=date("Y-m-d H:i:s", strtotime($_GET['chekin_date']));
$checkout_date=date("Y-m-d H:i:s", strtotime($_GET['checkout_date']));
$query_result=$this->general->execute_query2("SELECT * from special_calendar where category_id='$row->id' and '$chekin_date'<=start_date && end_date<='$checkout_date'");
if(!empty($query_result)){
while($chekin_date<$checkout_date)
{
foreach($query_result as $result)
{
if($result->start_date<=$chekin_date && $checkout_date<$result->end_date)
{
$amt = $amt+$result->rate;
}
else
{
//normal rate
$amt = $amt+$row->rate_day;
}
}
// increase check in date by 1
$datetime = new DateTime($chekin_date);
$datetime->modify('+1 day');
$chekin_date = $datetime->format('Y-m-d H:i:s');
}
}
else
{
$hrdif= $this->general->dateDifference($chekin_date , $checkout_date , $differenceFormat = '%h' );
$daydif= $this->general->dateDifference($chekin_date , $checkout_date , $differenceFormat = '%a' );
$amt=$amt+($daydif*$row->rate_day);
if($hrdif!=0){
$amt=$amt+($hrdif*$row->hrly_rate);
}
}
echo $amt;
-
답변 # 1
관련 자료
- javascript - 총 품목 수를 계산하는 방법
- python - 팬더 그룹 별 총 금액을 숫자 및 단가로 계산하는 방법
- mysql - 연초 이후 각 지점의 총 판매량 계산
- excel formula - 백분율의 양을 알 때 총액을 계산하는 방법
- sql - 거래/이벤트에서 금액 계산
- sql - 레일 총 매출 계산
- python - 이미지 간의 겹침 양을 계산하는 방법은 무엇입니까?
- javascript를 사용하여 페이지에서 모든 '입력 유형 = "숫자"'stepperjs의 총량과 차이를 얻는 방법은 무엇입니까?
- Abap 프로그램의 총액을 합산
- mariadb - '총 연결 수'가 너무 많습니다 정상적인 상태입니까? MaxScale 239
- powerbi - 공백 또는 미래 날짜를 채우지 않고 누적 합계를 계산하고 싶습니다
- 날짜, 금액 및 총계의 CSS 정렬
- javascript - 팁을 선택할 때 총량을 업데이트하는 방법
- java - 총 좌우 회전 수 계산
- excel - 개별 기간에서 총 시간을 계산하는 방법
- SQL Server - sql 서버 - 엔터티 수를 계산하여 합계의 80 %를 달성하는 방법은 무엇입니까?
- lambda - Java 스트림 API를 사용하여 목록 목록에서 총 금액을 추가하는 방법은 무엇입니까?
- javascript - 이 특정 품목의 총 비용을 계산하는 방법
- sql server - sql 쿼리 - 총 개수의 사용자 당 월별 백분율 계산
먼저 입장이 있으면 특별 달력 표를 검색 한 다음 요금을 가져와야합니다. 그렇지 않은 경우 쿼리에서 합계를 가져옵니다