I'm trying to compare times before and after midnight however after midnight the check fails.
What I want to do is check if the time is between 11 pm and 6 am.
Here is what I'm working with
// Hours
const start = 23 * 60 + 0;
const end = 6 * 60 + 0;
// Get todays date 11pm
const now = new Date();
// Check tomorrow for 6am
const nextDay = new Date(now.getTime() + 86400000);
const time_today = now.getHours() * 60 + now.getMinutes();
const time_tomorrow = nextDay.getHours() * 60 + nextDay.getMinutes();
if (time_today >= start && time_tomorrow < end) {
return interaction.reply({content: `You cannot do that until 6am.`, ephemeral: true})
}
Since you have now.getHours(), why not just check if it's between 11pm and 6 am?
const hours = now.getHours();
if (hours < 6 || hours==23){
return interaction.reply({content: `You cannot do that until 6am.`, ephemeral: true});
}