如何将形式为20170707105858这样的时间字符串转换为2017/07/07 10:58:58这样的呢?
function changeTime(timeStr){ var date; var timeArr=timeStr.split(‘‘);//将传进来的时间字符串拆分成数组 比如20170707105858就会转换为["2","0",..."5","8"], console.log(timeArr); var year=timeArr.slice(0,4).join(‘‘);在将上面的数组进行裁剪并且转变 var month=timeArr.slice(4,6).join(‘‘); var day=timeArr.slice(6,8).join(‘‘); var hour=timeArr.slice(8,10).join(‘‘); var min=timeArr.slice(10,12).join(‘‘); var sec=timeArr.slice(12,14).join(‘‘); date=year+‘/‘+month+‘/‘+day+‘/‘+hour+‘:‘+min+‘:‘+sec; return date;}比如我们运行:changeTime("20170707105825");// 返回结果为2017/07/07 10:58:25;如果还想考虑的更细腻的话我们还可以加入判断,那样就不用限制传入的参数的数据类型,不论是number还是字符串,可以将传进的参数直接转为字符串,比如toString()方法;转换就到此,假如我们想算两个形式为上述输出结果一样形式的时间的差,比如2017/09/14/ 15:25:03与2017/09/13/ 16:29:24只见差了多长时间方法如下:
function totalTimeFun(start,end){ var totalTime; var date1=new Date(changeTime(start)); //开始时间 var date2=new Date(changeTime(end)); //结束时间 var date3=date2.getTime()-date1.getTime(); //时间差的毫秒数 //计算出相差天数 var days=Math.floor(date3/(24*3600*1000)); //计算出小时数 var leave1=date3%(24*3600*1000); //计算天数后剩余的毫秒数 var hours=Math.floor(leave1/(3600*1000)); //计算相差分钟数 var leave2=leave1%(3600*1000); //计算小时数后剩余的毫秒数 var minutes=Math.floor(leave2/(60*1000)); //计算相差秒数 var leave3=leave2%(60*1000); //计算分钟数后剩余的毫秒数 var seconds=Math.round(leave3/1000); return _time=days+"天 "+hours+"小时 "+minutes+" 分钟"+seconds+" 秒";};
时间: 2024-10-20 19:54:09