You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中24小时制当前时间与指定字符串时间比较失败问题

时间比较始终返回false的问题解决方法

你的代码里有个容易忽略的小问题:生成time3时,hour参数里多写了两个空格——'2-digit ',这会导致生成的时间字符串格式出错,比如变成"09 :30"这种带多余空格的格式。而time1和time2是标准的HH:mm格式(比如"08:00"),两种格式的字符串直接比较自然永远不匹配,所以条件判断始终返回false。

修正步骤:

  • 把hour: '2-digit '改成hour: '2-digit',去掉多余空格,确保time3是标准的HH:mm格式。
  • (可选)简化addHours函数,避免不必要的重复代码。

修正后的完整代码:

const time1 = '08:00';
const time2 = '17:00';
const time3 = new Date().toLocaleTimeString([], {
    hour: '2-digit',
    minute: "2-digit",
    hour12: false
});

if (time1 < time3 && time3 < time2) {
    // 简化后的时间添加函数
    const addHours = (date, hours) => {
        const newDate = new Date(date);
        newDate.setHours(newDate.getHours() + hours);
        return newDate;
    };

    const now = new Date();
    const newDate = addHours(now, 1);

    console.log(newDate);
    alert(`Yours Scheduled time is ${newDate}`);
} else {
    alert('You cannnot get appointment now ');
}

补充说明:

标准的HH:mm格式字符串可以直接用大于/小于号比较,因为它们的字典序和时间先后顺序完全一致。只要保证三个时间字符串格式统一,就能正确判断当前时间是否在08:00-17:00区间内。

内容的提问来源于stack exchange,提问作者Lalit Joshi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 05:50:25