如何用JavaScript编写基于特定时间范围的If/Else问候判断逻辑
JavaScript 时间段问候语实现方案
核心逻辑是把当前时间的时分转换成当天的总分钟数,避免多维度判断时分的复杂度,代码简洁易读。
完整实现代码
function getGreeting() { const now = new Date(); // 转换为当天总分钟数,方便区间比较 const totalMinutes = now.getHours() * 60 + now.getMinutes(); // 时间段对应分钟阈值,可按需直接调整 const MORNING_START = 5 * 60 + 45; // 5:45 对应345分钟 const AFTERNOON_START = 12 * 60; // 12:00 对应720分钟 const EVENING_START = 18 * 60; // 18:00 对应1080分钟 if (totalMinutes >= MORNING_START && totalMinutes < AFTERNOON_START) { return "Good Morning"; } else if (totalMinutes >= AFTERNOON_START && totalMinutes < EVENING_START) { return "Good Afternoon"; } else { // 自动覆盖18:00到次日5:44:59的区间 return "Good Evening"; } } // 调用测试 console.log(getGreeting());
逻辑说明
- 不需要单独判断秒数:分钟数的判断已经覆盖了秒级区间,比如11:59的分钟数是719,小于720,哪怕到11:59:59依然属于上午区间,完全匹配需求规则
- 阈值用常量定义,后续需要修改时间段时直接调整常量即可,不需要修改判断逻辑
- 边界值完全符合要求:5:44分属于晚间区间,5:45分刚好进入上午区间;17:59属于下午区间,18:00刚好进入晚间区间
内容的提问来源于stack exchange,提问作者SaiyanDev
相关产品推荐
相关产品推荐

