方法一
dayCha(startime, endime) {
startime = startime.replace(new RegExp("-", "gm"), "/");
var start = new Date(startime);
var startYear = start.getFullYear();
var startMonth = start.getMonth() + 1;
var startDay = start.getDate();
var startMiao = start.getTime();
endime = endime ? endime.replace(new RegExp("-", "gm"), "/") : "";
var end = endime ? new Date(endime) : new Date();
var endYear = end.getFullYear();
var endMonth = end.getMonth() + 1;
var endDay = end.getDate();
var endMiao = end.getTime();
var years = 0;
var months = endMonth - startMonth + (endYear - startYear) * 12;
if (endMonth * 100 + endDay < startMonth * 100 + startDay) {
months--;
}
years = Math.floor(months / 12);
months = months % 12;
var middleDate = new Date(startime);
middleDate.setFullYear(startYear + years);
middleDate.setMonth(start.getMonth() + months);
var days = Math.floor(
(endMiao - middleDate.getTime()) / 24 / 60 / 60 / 1000
);
var chaTime = endMiao - startMiao;
var yu = chaTime % (24 * 3600 * 1000);
var hour = Math.floor(yu / (3600 * 1000));
var yuH = chaTime % (3600 * 1000);
var min = Math.floor(yuH / (60 * 1000));
var yuM = chaTime % (60 * 1000);
var sec = Math.floor(yuM / 1000);
var chastr =
years +
"年/" +
months +
"月/" +
days +
"天 " +
hour +
"时:" +
min +
"分:" +
sec +
"秒";
function strFn(e) {
return e > 9 ? e : "0" + e;
}
return {
year: years,
month: strFn(months),
day: strFn(days),
hour: strFn(hour),
minute: strFn(min),
second: strFn(sec),
};
}
setInterval(() => {
let str = this.dayCha("2015-02-08");
console.log(str)
}, 1000);
方法二
safeTime(startime) {
var yun_days = Math.floor((new Date().getFullYear() - 2006) / 4);
var second = 1000,
minute = 60 * second,
hour = 60 * minute,
day = 24 * hour,
year = 365 * day;
var date2 = new Date(startime);
var date3 = new Date();
var sec = date3.getTime() - date2.getTime() - yun_days * day;
if (sec < 0) {
sec = date2.getTime() - date3.getTime();
}
var years = Math.floor(sec / year);
sec -= years * year;
var days = Math.floor(sec / day);
sec -= days * day;
var hours = Math.floor(sec / hour);
sec -= hours * hour;
var minutes = Math.floor(sec / minute);
sec -= minutes * minute;
var seconds = Math.floor(sec / second);
if (hours < 10) {
hours = "0" + hours;
}
if (minutes < 10) {
minutes = "0" + minutes;
}
if (seconds < 10) {
seconds = "0" + seconds;
}
return {
year: years,
day: days,
hour: hours,
minute: minutes,
second: seconds,
};
}
setInterval(() => {
let str = this.safeTime("2015/02/08 00:00:00")
console.log(str)
}, 1000);