用js实现时间减去前1小时、7天、1月、1年
var sdtime1 = new Date('2018-03-22 16:14:55')
var sdtime2 = sdtime1.setHours(sdtime1.getHours() -1)//小时
var sdtime3=new Date().setDate((new Date().getDate()-7))//7天
var sdtime4=new Date().setMonth((new Date().getMonth()-1))//一个月
var sdtime5=new Date().setFullYear((new Date().getFullYear()-1))//一年
console.log(new Date(sdtime2).Format("yyyy-MM-dd HH:mm:ss"));
如何获得两个日期之间的差异(以天为单位)
const getDaysDiffBetweenDates = (dateInitial, dateFinal) =>
(dateFinal - dateInitial) / (1000 * 3600 * 24);
// 事例
getDaysDiffBetweenDates(new Date('2017-12-13'), new Date('2017-12-22')); // 9
获取时间范围
// 初始化获取日期
var myDate = new Date();
var year = myDate.getFullYear(); //获取完整的年份(4位,1970-????)
var month = myDate.getMonth() + 1; //获取当前月份(0-11,0代表1月)
var day = myDate.getDate(); //获取当前日(1-31)
// 今天
this.startTime1 = year + "-" + month + "-" + day;
// 昨天
// this.startTime2 = year + "-" + month + "-" + (day - 1);
var end2 = new Date();
var start2 = new Date();
start2.setTime(start2.getTime() - 3600 * 1000 * 24 * 1);
this.startTimeYes = this.GMTToStr(start2);
this.endTimeYes = this.GMTToStr(end2);
// console.log(this.startTimeYes, this.endTimeYes);
// 近七天
var end = new Date();
var start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
this.startTimeWeek = this.GMTToStr(start);
this.endTimeWeek = this.GMTToStr(end);
// 近15天
var end1 = new Date();
var start1 = new Date();
start1.setTime(start1.getTime() - 3600 * 1000 * 24 * 15);
this.startTimeMonth = this.GMTToStr(start1);
this.endTimeMonth = this.GMTToStr(end1);
GMTToStr(time){
let date = new Date(time)
let Str=date.getFullYear() + '-' +
(date.getMonth() + 1) + '-' +
date.getDate() + ' ' +
date.getHours() + ':' +
date.getMinutes() + ':' +
date.getSeconds()
return Str
}
获取上月,本月,下月
//type(s,e) 开始时间,结束时间 months(-1,0,1) 上月,本月,下月
function getMonth(type, months) {
var d = new Date();
var year = d.getFullYear();
var month = d.getMonth() + 1;
if (Math.abs(months) > 12) {
months = months % 12;
};
if (months != 0) {
if (month + months > 12) {
year++;
month = (month + months) % 12;
} else if (month + months < 1) {
year--;
month = 12 + month + months;
} else {
month = month + months;
};
};
month = month < 10 ? "0" + month: month;
var date = d.getDate();
var firstday = year + "-" + month + "-" + "01";
var lastday = "";
if (month == "01" || month == "03" || month == "05" || month == "07" || month == "08" || month == "10" || month == "12") {
lastday = year + "-" + month + "-" + 31;
} else if (month == "02") {
if ((year % 4 == 0 && year % 100 != 0) || (year % 100 == 0 && year % 400 == 0)) {
lastday = year + "-" + month + "-" + 29;
} else {
lastday = year + "-" + month + "-" + 28;
};
} else {
lastday = year + "-" + month + "-" + 30;
};
var day = "";
if (type == "s") {
day = firstday;
} else {
day = lastday;
};
return day;
}
时间转换
/**
* 时间戳转化为年 月 日 时 分 秒
* number: 传入时间戳
* format:返回格式,支持自定义,但参数必须与formateArr里保持一致
*/
function formatTime(number,format) {
var formateArr = ['Y','M','D','h','m','s'];
var returnArr = [];
var date = new Date(number * 1000);
returnArr.push(date.getFullYear());
returnArr.push(formatNumber(date.getMonth() + 1));
returnArr.push(formatNumber(date.getDate()));
returnArr.push(formatNumber(date.getHours()));
returnArr.push(formatNumber(date.getMinutes()));
returnArr.push(formatNumber(date.getSeconds()));
for (var i in returnArr)
{
format = format.replace(formateArr[i], returnArr[i]);
}
return format;
}
//数据转化
function formatNumber(n) {
n = n.toString()
return n[1] ? n : '0' + n
}
调用示例:
var sjc = 1488481383;//时间戳
console.log(time.formatTime(sjc,'Y/M/D h:m:s'));//转换为日期:2017/03/03 03:03:03
console.log(time.formatTime(sjc, 'h:m'));//转换为日期:03:03