因為后台返回的是"2018-06-30 00:00:00"這種格式,需要先轉換一下,再計算距離今天得時間差。
/**
*獲取時間差值(天數)
*/
getTimeDifference(date){
//轉換時間
let regEx = new RegExp("\\-","gi");
let validDateStr=date.replace(regEx,"/");
let milliseconds=Date.parse(validDateStr);
var sendTime = new Date(milliseconds);
//當前時間
var nowTime = new Date();
//差值
var date3 = sendTime - nowTime;
//天
var days=Math.floor(date3/(24*3600*1000));
return days;
}
在此基礎上如果要計算具體的時分秒參考如下:
//天
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)
下面是時間轉換格式方法:
class DateUtil{
/**
* 例如:2017-06-28 10:48:46轉成date類,
* 可把- replace成/
* @param dateString
* @return Date
*/
static parserDateString(dateString){
if
(dateString){
let regEx =
new
RegExp(
"\\-"
,
"gi"
);
let validDateStr=dateString.replace(regEx,
"/"
);
let milliseconds=Date.parse(validDateStr);
return
new
Date(milliseconds);
}
}
// timestamp時間戳 formater時間格式
static formatDate(timestamp, formater) {
let date =
new
Date();
date.setTime(parseInt(timestamp));
formater = (formater !=
null
)? formater :
'yyyy-MM-dd hh:mm'
;
Date.prototype.Format =
function
(fmt) {
var
o = {
"M+"
:
this
.getMonth() + 1,
//月
"d+"
:
this
.getDate(),
//日
"h+"
:
this
.getHours(),
//小時
"m+"
:
this
.getMinutes(),
//分
"s+"
:
this
.getSeconds(),
//秒
"q+"
: Math.floor((
this
.getMonth() + 3) / 3),
//季度
"S"
:
this
.getMilliseconds()
//毫秒
};
if
(/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (
this
.getFullYear() +
""
).substr(4 - RegExp.$1.length));
for
(
var
k
in
o) {
if
(
new
RegExp(
"("
+ k +
")"
).test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ?
(o[k]) : ((
"00"
+ o[k]).substr((
""
+ o[k]).length)));
}
return
fmt;
}
return
date.Format(formater);
}
}
export
default
DateUtil;
參考鏈接:http://www.jb51.net/article/126673.htm
https://blog.csdn.net/weng_sky/article/details/52098310