在从后台的数据获取起止时间来计算天数的时候,碰到的Data格式如下:
{
"result": true,
"data": [
{
"_id": "5bac9173b8be3f63b9e121ce",
"name": "产品实习生",
"employeeKind": "实习",
"department": "产品部",
"leader": "Allan Lan",
"number": 2, // 招聘人数
"beginDate": "2018-09-20T00:00:00.000Z", // 开始时间
"date": "2018-10-20T00:00:00.000Z", // 结束时间
"description": "职位JD", // 职位描述
"status": 1, // 状态
"__v": 0
},
...
],
"message": "获取成功"
}
2018-09-20T00:00:00.000Z,这个格式的时间,我打算先用正则获取2018-09-20这一段,再用/符号replace掉-符号;
但是我通过如下方式获得到的data不是字符串,是对象,所以不能使用replace方法
str1=arr[i]['date'].match(matchReg),
str2=arr[i]['beginDate'].match(matchReg);
var days=long(str1,str2);
$(Num+" .thing2 .days").html(days);
为了使用replace方法,应该对str1和str2使用toString()方法首先将它们转化成字符串,再使用replace方法,接下来看我如何将获得的两个xxxx-xx-xx的时间格式相加减从而获得两个时间距离的天数:
//创建获得发布天数的函数
var long=function(str1,str2){
start=str1.toString().replace(/-/g,"/");
var startdate=new Date(start);
end=str2.toString().replace(/-/g,"/");
var enddate=new Date(end);
var time=startdate.getTime()-enddate.getTime();
var days=parseInt(time/(1000 * 60 * 60 * 24));
return days;
}