正如标题所述,我想计算开始日期和结束日期之间的周数,这让我有些困惑,有人可以向我说明一下。
var start_date = new Date();
var end_date = new Date(2018,09,30);
答案 0 :(得分:1)
使用moment.js。
std::vector
更改格式
assert(_arguments.size() > 0); // else the executable will be invalid
std::vector<const char *> args;
args.reserve(_arguments.size() + 1);
for(string *sp: _arguments) {
args.push_back(sp->c_str());
}
args.push_back(nullptr); // needed to terminate the args list
execvp(args[0], args.data());
您可以获得总天数,可以除以7。这样您就可以没有几周的时间。
答案 1 :(得分:1)
function diff_weeks(dt2, dt1)
{
var diff =(dt2.getTime() - dt1.getTime()) / 1000;
diff /= (60 * 60 * 24 * 7);
return Math.abs(Math.round(diff));
}
dt1 = new Date(2018,09,25);
dt2 = new Date(2018,10,02);
alert(diff_weeks(dt1, dt2));
dt1 = new Date("September 25, 2018 08:11:00");
dt2 = new Date("October 02, 2018 08:11:00");
alert(diff_weeks(dt1, dt2));
此功能将为您带来几周的差异
答案 2 :(得分:0)
尝试此代码,dateArr中将显示星期数,您也将在每个星期的开始到结束看到。您可以根据需要编辑代码。
var start = new Date(Date.UTC(2016, 09, 30, 0, 0, 0));
var end = new Date(Date.UTC(2016, 11, 02, 0, 0, 0));
var sDate;
var eDate;
var dateArr = [];
while(start <= end){
if (start.getDay() == 1 || (dateArr.length == 0 && !sDate)){
sDate = new Date(start.getTime());
}
if ((sDate && start.getDay() == 0) || start.getTime() == end.getTime()){
eDate = new Date(start.getTime());
}
if(sDate && eDate){
dateArr.push({'startDate': sDate, 'endDate': eDate});
sDate = undefined;
eDate = undefined;
}
start.setDate(start.getDate() + 1);
}
console.log(dateArr);
答案 3 :(得分:0)
您可以使用一些非常酷的JavaScript库。一个不错的轻量级版本将是date-fns。我已经链接了下载链接,并从他们的文档中为您编写了一些示例代码:
下载/添加到您的软件包中:https://date-fns.org
文档:https://date-fns.org/v1.29.0/docs/differenceInWeeks
示例:
// How many full weeks are between 5 July
// 2014 and 20 July 2014?
var result = differenceInWeeks(
new Date(2014, 6, 20),
new Date(2014, 6, 5)
)
//=> 2