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

在Angular/JavaScript中如何判断yyyy-mm-dd格式日期是否为周末

如何在Angular/JavaScript中判断yyyy-mm-dd格式的日期是否为周末?

没问题,我来帮你完善这个判断逻辑!核心思路是利用JavaScript原生Date对象的getDay()方法——它会返回一个0到6的数字,其中0代表周日,6代表周六,这两个数值对应的就是周末。

完善后的完整代码

$scope.isWeekend = function() {
    $scope.date = '2018-05-13';
    // 将yyyy-mm-dd格式的字符串转换为Date对象
    const dateObj = new Date($scope.date);
    // 获取星期几的数值(0=周日,6=周六)
    const dayOfWeek = dateObj.getDay();
    
    if (dayOfWeek === 0 || dayOfWeek === 6) {
        alert("这是周末!");
        return true; // 返回布尔值,方便后续业务逻辑使用
    } else {
        alert("这不是周末!");
        return false;
    }
};

注意事项:时区问题的规避

直接用new Date('yyyy-mm-dd')在部分浏览器/环境中可能会因为时区差异,导致日期被解析为前一天的深夜(比如UTC时区的解析结果),进而影响星期几的判断。如果要彻底避免这个问题,可以手动拆分日期字符串来创建Date对象:

$scope.isWeekend = function() {
    $scope.date = '2018-05-13';
    // 拆分年、月、日(注意JavaScript的月份是从0开始计数的)
    const [year, month, day] = $scope.date.split('-').map(Number);
    const dateObj = new Date(year, month - 1, day);
    
    const dayOfWeek = dateObj.getDay();
    if (dayOfWeek === 0 || dayOfWeek === 6) {
        alert("这是周末!");
        return true;
    } else {
        alert("这不是周末!");
        return false;
    }
};

这种方式会直接创建本地时间的指定日期,完全不会受时区影响,判断结果更准确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:10:06