原生js时间获取,格式随意

//获取日期 0为今天,负数为前几天,正数为后几天
function getDay(day){
	var today = new Date();
	var targetday_milliseconds = today.getTime() + 1000*60*60*24*day;
	today.setTime(targetday_milliseconds);
	var tYear = today.getFullYear();
	var tMonth = today.getMonth();
	var tDay = today.getDate();
	tMonth = doHandleZero(tMonth + 1);
	tDay = doHandleZero(tDay);
	return tYear + "-" + tMonth + "-" + tDay;
}

//获取当前时分秒时间
function getNowTime(){
	var date = new Date();
	var hour = doHandleZero(date.getHours());
	var minute = doHandleZero(date.getMinutes());
	var second = doHandleZero(date.getSeconds());
	return getDay(0) + ' ' + hour + ':' + minute + ':' + second;
}

//获取本周第一天
function getFirstDayOfWeek() {
	var date = new Date();
    var weekday = date.getDay()||7; //获取星期几,getDay()返回值是 0(周日) 到 6(周六) 之间的一个整数。0||7为7,即weekday的值为1-7
    date.setDate(date.getDate()-weekday+1);//往前算(weekday-1)天,年份、月份会自动变化
    var tYear = date.getFullYear();
	var tMonth = date.getMonth();
	var tDay = date.getDate();
	tMonth = doHandleZero(tMonth + 1);
	tDay = doHandleZero(tDay);
    return tYear + "-" + tMonth + "-" + tDay;
}

//获取本月第一天
function getFirstDayOfMonth(){
	var today = new Date();
	var tYear = today.getFullYear();
	var tMonth = today.getMonth();
	tMonth = doHandleZero(tMonth + 1);
	return tYear + "-" + tMonth + "-01";
}

//获取上个月第一天
function getFirstDayOfLastMonth(){
	var today = new Date();
	var tYear = today.getFullYear();
	var tMonth = today.getMonth();
	tMonth = doHandleZero(tMonth);
	return tYear + "-" + tMonth + "-01";
}

//获取上个月最后一天
function getLastDayOfLastMonth(){
	var today = new Date();
	let lastMonthDay = new Date(today.getFullYear(), today.getMonth(), 0).getDate();	//获取月份最后一天
	return today.getFullYear() + "-" + doHandleZero(today.getMonth()) + "-" + lastMonthDay;
}

//获取24小时之前的小时时间
function get24HourAfter(){
	var today = new Date();
	var tYear = today.getFullYear();
	var tMonth = today.getMonth();
	var tDay = today.getDate();
	var hour = doHandleZero(today.getHours());
	tMonth = doHandleZero(tMonth + 1);
	tDay = doHandleZero(tDay-1);
	return tYear + "-" + tMonth + "-" + tDay + ' ' + hour + ":00:00";
}

//获取一小时之前的小时时间
function getOneHourAgo(){
	var today = new Date();
	var tYear = today.getFullYear();
	var tMonth = today.getMonth();
	var tDay = today.getDate();
	var hour = doHandleZero(today.getHours()-1);
	tMonth = doHandleZero(tMonth + 1);
	tDay = doHandleZero(tDay);
	return tYear + "-" + tMonth + "-" + tDay + ' ' + hour + ":00:00";
}

//获取今天第一天
function getFirstDayOfYear(){
	var today = new Date();
	var tYear = today.getFullYear();
	return tYear + "-01-01";
}

//获取去年第一天
function getFirstDayOfLastYear(){
	var today = new Date();
	var tYear = today.getFullYear();
	return (tYear - 1) + "-01-01";
}

//获取两个日期之间相差的天数
function getDaysForTwo(start, end){
	var date1 = start + ' 00:00:00';  //开始时间
    var date2 = end?end:new Date();    //结束时间
    var date3 = date2.getTime() - new Date(date1).getTime();   //时间差的毫秒数      
    //var subMinutes = Math.floor( date3/(60*1000) ) //获取总共的分钟差
    //计算出相差天数
    var days = Math.floor(date3/(24*3600*1000))
    return days
}

//获取两个日期之间相差的小时数
function getHoursForTwo(start, end){
	var date1 = start;  //开始时间
    var date2 = end?end:new Date();    //结束时间
    var date3 = date2.getTime() - new Date(date1).getTime();   //时间差的毫秒数      
    var hours = Math.floor( date3/(3600*1000) ) //获取总共的分钟差
    //计算出相差天数
    //var days = Math.floor(date3/(24*3600*1000))
    return hours
}

//获取两个日期之间相差的分钟数
function getMinutesForTwo(start, end){
	var date1 = start;  //开始时间
    var date2 = end?end:new Date();    //结束时间
    var date3 = date2.getTime() - new Date(date1).getTime();   //时间差的毫秒数      
    var minutes = Math.floor( date3/(60*1000) ) //获取总共的分钟差
    return minutes
}

//日期格式转换 格林威治时间转yyyy-MM-dd HH:mm:ss
function transferDate(date, format) {
    format = format || 'yyyy-MM-dd HH:mm:ss';
    date = new Date(date);
    date.setHours(date.getHours()-14);
    var o = {
        'M+' : date.getMonth() + 1, //month
        'd+' : date.getDate(), //day
        'H+' : date.getHours(), //hour
        'm+' : date.getMinutes(), //minute
        's+' : date.getSeconds(), //second
        'q+' : Math.floor((date.getMonth() + 3) / 3), //quarter
        'S' : date.getMilliseconds() //millisecond
    };

    if (/(y+)/.test(format))
        format = format.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));

    for (var k in o)
        if (new RegExp('(' + k + ')').test(format))
            format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length));

    return format;
}

function doHandleZero(month){
	var m = month;
	if(month.toString().length == 1){
		m = "0" + month;
	}
	return m;
}

function dateToString(date){ 
	var year = date.getFullYear(); 
	var month =(date.getMonth() + 1).toString(); 
	var day = (date.getDate()).toString();  
	if (month.length == 1) { 
		month = "0" + month; 
	} 
	if (day.length == 1) { 
		day = "0" + day; 
	}
	var dateTime = year + "-" + month + "-" + day;
	return dateTime; 
}
原文地址:https://www.cnblogs.com/chengyalin/p/11990059.html