非常快速的问题。
我的日期时间存储在我的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代码中注意到。
谢谢!
答案 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());