js獲取指定時間日期和當前時間日期的相差多少時間

admin發表於2017-04-06

在實際應中,可能需要獲取指定時間日期和當前時間日期時間差。

下面就分享一段能夠實現此功能的程式碼例項,並且比較靈活,可以規定獲取時間差的單位。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
//+--------------------------------------------------- 
//| 字串轉成日期型別  
//| 格式 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"));

相關文章