Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Dùng map() kiểm tra giờ hiện tại có trong khung giờ học không (JavaScript)

Duyệt mảng lịch học, parse chuỗi giờ (VD: "5 PM - 11 PM"), so sánh với giờ hiện tại getHours().

Ví dụ


const schedule = [
    { subjectName: 'JavaScript', studyTime: '5 PM - 11 PM' },
    { subjectName: 'MySQL', studyTime: '12 AM - 4 PM' }
];

function getCurrentSubject(schedule) {
    const now = new Date().getHours(); // 0-23
    let subject = '';
    
    schedule.forEach(item => {
        const parts = item.studyTime.split(' ');
        // parts: ['5', 'PM', '-', '11', 'PM']
        const startHour = parseInt(parts[0]) + (parts[1] === 'PM' && parts[0] !== '12' ? 12 : 0);
        const endHour = parseInt(parts[3]) + (parts[4] === 'PM' && parts[3] !== '12' ? 12 : 0);
        
        if (now >= startHour && now < endHour) {
            subject = item.subjectName;
        }
    });
    
    return subject || 'Nghỉ ngơi';
}

console.log("Môn học hiện tại: " + getCurrentSubject(schedule));

Cách chạy

node demo.js

Kết quả (ví dụ lúc 15h)


Môn học hiện tại: JavaScript

Lưu ý: Code xử lý giờ 12h format (AM/PM). Cần xử lý edge case: 12 AM = 0h, 12 PM = 12h.