Website-Suche

javascript - Wie organisiert man einen Zeitplan bis Mitternacht um?


Ich habe den folgenden Zeitplan:

export default {
monday: {
    startTime: '11:00', // 11 am
    endTime: '03:00' // 03 am
},
tuesday: {
    startTime: '12:00', //12 am
    endTime: '18:30' // 6 pm
},
wednesday: {
    startTime: '10:00', //10 am
    endTime: '22:00' // 10 pm
},
thursday: {
    startTime: '11:00', // 11 am
    endTime: '21:30' // 9pm
},
friday: {
    startTime: '10:00', //10 am
    endTime: '19:00' // 7pm
}, 
    saturday: undefined,
    sunday: undefined
}

Bitte überprüfen Sie den Zeitplan für Montag. Stellen Sie sich vor, dass ein Geschäft um 11 Uhr morgens öffnet und gegen 3 Uhr morgens schließt, aber von Mitternacht bis 3 Uhr morgens ist es bereits Dienstag, da Montag um Mitternacht endet.

Mit dem obigen Zeitplan möchte ich ihn gerne neu organisieren, indem ich die Zeiten richtig trenne. So etwas in der Art:

monday: [
    {startTime: '11:00', endTime: '00:00' } // 11am, midnight
],
tuesday: [
    { startTime: '00:00', endTime: '03:00' }, // midnight, 03am
    { startTime: '11:00', endTime: '18:30' } // 11am, 6pm
]

Der Zeitplan kann auf andere Start- und Endzeiten geändert werden, sodass der Code sich an diese Änderungen anpassen sollte.

Das ist, was ich bisher versucht habe:

componentDidMount(){
    let newSchedule: any;
    const schedule = this.props.schedule; // the whole schedule

    const startTime = Object.keys(schedule)
            .filter((key) => schedule[key])  
            .map((key:string) => moment(schedule[key].startTime, 'HH:mm'))
    console.log(startTime) // every startTime

    const endTime = Object.keys(schedule)
            .filter((key) => schedule[key])  
            .map((key:string) => moment(schedule[key].endTime, 'HH:mm'))
    console.log(endTime) // every endTime

    if (endTime < startTime) {
        console.log('yes') // works
    }

    if (endTime < startTime) {
        console.log('yep') // works
    }

}

Ich habe darüber nachgedacht, das Objekt zu durchlaufen, damit ich jeden Wochentag bekommen und jede Startzeit und Endzeit erhalten kann. Was ich nicht weiß, ist, wie ich als Nächstes die Zeitpläne bis Mitternacht trennen soll.

Wie kann ich dieses Ergebnis in JS erreichen? Ich kann auch mit Moment JS arbeiten. :)