计算周末工作日还是假日

时间:2019-04-15 04:49:41

标签: javascript date

我有一个从我的请求开始的日期和结束日期,需要查找给定的一天是工作日还是周末或假日(从db中的假日列表中)

我尝试使用moment.js

2 个答案:

答案 0 :(得分:0)

moment.js只是一个用于管理日期的库,您需要的是一种算法来确定日期之一是周末还是工作日。 因此,您可以做的是从日期(0-6)中获取星期几,其中0是星期日。

我们说

var date = moment("2015-07-02");
var dow = date.day();

关于是否有节假日,这也很简单,您需要获取一个数组,其中所有日期的格式都与moment.js所用的格式相同,并遍历该数组以执行以下操作:

var holidays = ["2019-07-02", "2019-07-04"]

let isHoliday = holidays.find(x => x === "2015-07-02")

您需要做的所有工作就在这里。

答案 1 :(得分:0)

确定给定日期是否为周末实际上很简单,并且已经有答案here

要确定给定的日期是否是假期有点复杂,您无法使用本机JavaScript来实现,您将需要外部软件包的帮助。

我建议您使用moment-holiday,它具有最简单的API:

moment('2017-12-25').isHoliday();
//Christmas Day

moment('2005-03-15').isHoliday();
//false

moment('2009-10-31').isHoliday('Halloween');
//true

moment('2017-12-31').isHoliday();
//New Year's Eve

moment('2017-12-31').isHoliday(null, true);
//false

或者您可以使用date-holidays