如何在Javascript中排除2个日期(周末(周日和周六)除外)?

时间:2016-12-12 16:03:02

标签: javascript

非常快速的问题。

我的日期时间存储在我的sql数据库中。我使用此日期来计算这些日期时间之间的时间差异,如下所示:

var date1 = new Date(request[0].RequestDate.toString()); //coming from my db
var date2 = new Date(); // current datetime
var timeDiff = Math.abs(date2.getTime() - date1.getTime()); // calc diff
var rod= timeDiff / (1000 * 3600 * 24);
rod= rod.toFixed(2); // result that I want

但是,这会让我区分包括Sat和Sun在内的两个日期。如何更改我的JS代码以排除Sat和Sun.

PS注意:我正在处理的数据库中的那一天有以下格式:Mon Dec 12 2016 10:23:50 GMT-0500 (Eastern Standard Time)我需要在“时间”中使用差异,你可以在我的JS代码中注意到。

谢谢!

1 个答案:

答案 0 :(得分:-1)

一个简单的for循环遍历总天数,为那天创建一个日期对象并增加新天总计数应该这样做:

var days = 0;
for (d = 0; d <= rod; d++) {
    var thisDate = new Date(
        date1.getYear(),
        date1.getMonth(),
        (date1.getDate()+d),
        date1.getHours(),
        date1.getMinutes(),
        date1.getSeconds()
    );

    // 0: Sunday, 6: Saturday
    if (thisDate.getDay() > 0 &&
        thisDate.getDay() < 6) {
        days++;
    }
}
days.toFixed(2);

现在要获得与时间上的日期差异,您只需要使用上述新的总天数从开始日期构建一个新日期:

var startDate = new Date(date1.toDateString());
date1.setDate(date1.getDate() + days);
var endDate = new Date(date1.toDateString());