js获取指定时间日期和当前时间日期的相差多少时间

快乐打工仔 分类:实例代码

在实际应中,可能需要获取指定时间日期和当前时间日期时间差。

下面就分享一段能够实现此功能的代码实例,并且比较灵活,可以规定获取时间差的单位。

代码实例如下:

//+--------------------------------------------------- 
//| 字符串转成日期类型  
//| 格式 MM/dd/YYYY MM-dd-YYYY YYYY/MM/dd YYYY-MM-dd 
//+--------------------------------------------------- 
function StringToDate(DateStr){  
  var converted = Date.parse(DateStr); 
  var myDate = new Date(converted); 
  if (isNaN(myDate)) {  
    var arys= DateStr.split('-'); 
    myDate = new Date(arys[0],--arys[1],arys[2]); 
  } 
  return myDate; 
} 
//+--------------------------------------------------- 
//| 比较日期差 dtEnd 格式为日期型或者有效日期格式字符串 
//+--------------------------------------------------- 
Date.prototype.DateDiff = function(strInterval, dtEnd) {  
  var dtStart = this; 
  if (typeof dtEnd == 'string' )//如果是字符串转换为日期型 
  {  
    dtEnd = StringToDate(dtEnd); 
  } 
  switch (strInterval) {  
    case 's' :return parseInt((dtEnd - dtStart) / 1000); 
    case 'n' :return parseInt((dtEnd - dtStart) / 60000); 
    case 'h' :return parseInt((dtEnd - dtStart) / 3600000); 
    case 'd' :return parseInt((dtEnd - dtStart) / 86400000); 
    case 'w' :return parseInt((dtEnd - dtStart) / (86400000 * 7)); 
    case 'm' :return (dtEnd.getMonth()+1)+((dtEnd.getFullYear()-dtStart.getFullYear())*12) - (dtStart.getMonth()+1); 
    case 'y' :return dtEnd.getFullYear() - dtStart.getFullYear(); 
  } 
} 
var date=new Date();
console.log(date.DateDiff("y","2019-10-4"));

回复

我来回复
  • 暂无回复内容