javascript - 英国假期测试不起作用

标签 javascript arrays date

也许我错过了一些明显的东西,但我不知道我做错了什么。 我正在尝试编写一个函数,如果给定日期是英国假期,则该函数返回 true。

我创建了一个小数组来测试我的函数:

const holidays = [
new Date(2016, 0, 1),  //NewYearsDay
new Date(2016, 2, 25),  //GoodFriday
new Date(2016, 2, 27),  //Easter
];

那么我的功能是

function isHoliday(date){
    return holidays.some(function(d) {
        return (d == date);
    });
}

为了测试它,我运行了

 date = new Date(2016, 0, 1);
 var a = isHoliday(date);
 alert(a); 

但警报显示错误??

最佳答案

您无法测试两个 Date 对象是否相等。
只需测试日期的时间戳,它是一个数值

function isHoliday(date){
    return holidays.some(function(d) {
        return (d.getTime() == date.getTime());
    });
}

关于javascript - 英国假期测试不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38598146/

相关文章:

字符数组 c k&r 第 1-17 本书

php - 如何在php中获取当前日期和时间

php - 将日期添加到当前日期

JAVA:如何根据字段对列表进行排序

javascript - jQuery tablesorter 排序格式化货币

javascript - 如何使用 phantomjs 浏览器在 capybara 中获取完整的 url 和哈希值

c++ - 如果我不自己分配数组元素的值是什么

javascript - 取消光谱拾色器不工作

javascript - Vue JS不渲染Option元素的value属性

javascript - 数组:拆分文件名