THẢO LUẬN

thg 6 22, 2021 1:23 CH

tiện thể em cũng xin memo lại các làm hiện tại của em luôn ạ.

Bước 1: em dùng truy vấn Sql để lấy ra các khoảng thời gian available cho booking.

$availableRanges = 
SELECT cast(available_from AS DECIMAL(10,2)) AS available_from, (CONVERT(available_to, DECIMAL(10,2)) - 0.5) AS available_to
        FROM (        
            SELECT 
                @lasttime_to AS available_from,
                start_time_decimal  AS available_to,
                @lasttime_to := re_available_time_decimal 
            FROM (
                    (SELECT * FROM reservations 
                    WHERE reservation_date = "{$day}" AND room_id={$roomId}
                    ORDER BY start_time_decimal, re_available_time_decimal) AS origin
                    JOIN (SELECT @lasttime_to := 9) AS init
                )
            UNION
            SELECT @lasttime_to AS available_from,
                21   AS available_to,
                0
            ) AS result
WHERE result.available_from <> result.available_to

Bước 2: Loop qua các khung thời gian available và check xem startTime và endTime có thuộc khoảng đang available hay không.

foreach ($roomAvailableRanges as $item) {
    if ( ($item->available_from <= $startTime && $startTime   <= $item->available_to) 
    && ($item->available_from <= $endTime  && $endTime    <= $item->available_to)
     ) {
         return true;
     }
     return $roomAvailableRanges ;
 }
0
thg 6 22, 2021 1:14 CH

À mà chắc là mình có thể viết lại thế này cho dễ hiểu hơn em ạ

if (!(endTime <= booking.startTime || startTime >= booking.endTime)) {
    return false;
}

Tức một khoảng thời gian là hợp lệ nếu endTime của nó nhỏ hơn hoặc bằng startTime của booking đã có, hoặc startTime của nó lớn hơn hoặc bằng endTime của booking đã có

E cảm ơn anh nhiều ạ. A viết ra rồi thì nhìn đúng là nó đơn giản thật, mà lúc làm thì khó nghĩ ra đc 😄

0

Nếu lấy thời gian sinh lùi lại 40 tuần thai kỳ, tức là ~9 tháng, ta sẽ thấy tập trung rất nhiều vào khoảng thời gian từ tháng 12 tới tháng 1 mà hình như tầm đó phương Tây được nghỉ khá dài 😶😆 đó là lý do có nhiều người sinh vào tháng 9 chẳng?fig.png

+1
thg 6 22, 2021 1:07 CH

@thangtd90

Anh thấy cái này startTime == booking.startTime && endTime == booking.endTime thì nằm trong cái điều kiện thứ nhất là startTime >= booking.startTime && startTime < booking.endTime rồi mà nhỉ

Dạ, đúng như a nói rồi. lúc lẫy em hơi rối 😄

0
thg 6 22, 2021 10:50 SA

@benkyou Anh thấy cái này startTime == booking.startTime && endTime == booking.endTime thì nằm trong cái điều kiện thứ nhất là startTime >= booking.startTime && startTime < booking.endTime rồi mà nhỉ 😄 (mình mặc định điều kiện hiển nhiên là booking.startTime < booking.endTime)

À mà chắc là mình có thể viết lại thế này cho dễ hiểu hơn em ạ

if (!(endTime <= booking.startTime || startTime >= booking.endTime)) {
    return false;
}

Tức một khoảng thời gian là hợp lệ nếu endTime của nó nhỏ hơn hoặc bằng startTime của booking đã có, hoặc startTime của nó lớn hơn hoặc bằng endTime của booking đã có 🤔

+1
thg 6 22, 2021 10:19 SA

@thangtd90
E cảm ơn anh đã dành thời gian cho câu hỏi của em ạ.

Đoạn check điều kiện bên trên, e nghĩ chắc phải thêm 1 điều kiện nữa.
Vì với 3 điều kiện hiện tại em thấy có vẻ như bị lack 1 trường hợp.
A thấy ổn ko ạ?

if ((startTime >= booking.startTime && startTime < booking.endTime)
        || (endTime > booking.startTime && endTime < booking.endTime)
        || (startTime < booking.startTime && endTime >= booking.endTime)
        || (startTime == booking.startTime && endTime == booking.endTime)
        ) {
            return false;
        }
0

cho em hỏi với rasa 2.0 e không thể cài đk ạScreenshot 2021-06-22 170225.png

0

Takeoff Projects helps students complete their academic projects.You can enrol with friends and receive machine learning project ideas kits at your doorstep. You can learn from experts, build latest projects, showcase your project to the world and grab the best jobs. Get started today! https://takeoffprojects.com/machine-learning-project-ideamachine learning project ideas.jpg

0
thg 6 22, 2021 8:06 SA

tên bài hơi misleading nhỉ :-s nghe giống DB queries hơn là Google :-s

0
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 6 22, 2021 8:03 SA

oke bạn nhé

0

Có đấy bác, tốt nhất ko nên trùng. Không thì nó sẽ conflict

0
thg 6 22, 2021 7:39 SA

😃))

0
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 6 22, 2021 7:38 SA

@maitrungduc1410 oke b. tks b nhiều

+1

Hầu như toàn bộ các bài viết đều bị mất hoặc không có hình ảnh, bạn vui lòng bổ sung nhé.

0
thg 6 22, 2021 7:20 SA

@bumpro cảm ơn b mình sửa rồi nhé. 😃

0
thg 6 22, 2021 6:57 SA

Code này ko còn lấy đc 320 nữa đúng ko mọi người ? Mình thử chỉ còn ra 128 thôi à

0

Không hiểu sao bài viết không render được ký hiệu toán học nên khó nhìn quá.

0

thanks

0
thg 6 22, 2021 5:52 SA

Cảm ơn góp ý của bạn, mình cần lưu ý một điều là bất kỳ route nào cũng đều cần chạy qua middleware này thì nó mới hoạt động, bạn đặt vào vị trí "$middlewareGroups(chỗ phần web)" thì middleware này sẽ chạy cho toàn bộ cho các route ở web.php, một phương án hay đấy. Còn như bài viết thì bạn cần đặt toàn bộ các route khác vào trong group như trên bài nhá, có thể bạn đang đặt ở ngoài rồi.

0
thg 6 22, 2021 4:39 SA

@SonNguyen cảm ơn bạn đã cảm ơn mình nhé !!

0
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí