JS如何按時間粒度獲取date的時間差
阿新 • • 發佈:2017-12-28
gpo var function ise col prototype fun ont switch
獲取date類型
var type = _xAxis[0].split(/-|:|\s/).length;
按時間粒度獲取date的時間差
function getDateDiffByType(newDate,endDate,type){ newDate = new Date(newDate) == ‘Invalid Date‘ ? newDate+‘:00‘ : newDate; endDate = new Date(endDate) == ‘Invalid Date‘ ? endDate+‘:00‘ : endDate; var dateDiff = newDate(endDate)-new Date(newDate); var _date = new Date(dateDiff); var year = _date.getFullYear() - 1970; var month = _date.getMonth(); switch (type) { case 1: { return year; break; } case 2: {return month+year*12; break; } case 3: { return dateDiff/1000/60/60/24; break; } case 4: { return dateDiff/1000/60/60; break; } case 5: { return dateDiff/1000/60;break; } case 6: { return dateDiff/1000; break; } } }
附:date按時間粒度格式化
function dateFmtByType( _date,_type) { _date = new Date(_date) == ‘Invalid Date‘ ? _date+‘:00‘ : _date;//"2017-02-12 12"是Invalid Date var date = new Date(_date); var fmt = ["yyyy","yyyy-MM","yyyy-MM-dd","yyyy-MM-dd hh","yyyy-MM-dd hh:mm","yyyy-MM-dd hh:mm:ss"]; return date.dateFormat(fmt[_type-1]); }
附:date格式化代碼("yyyy-MM-dd hh:mm:ss")
Date.prototype.dateFormat = function(fmt) { //author: meizz 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; }
JS如何按時間粒度獲取date的時間差