关于js的replace方法的一些说明

在从后台的数据获取起止时间来计算天数的时候,碰到的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;
      }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值