js操作时间

获取当前日期

Date.prototype.Format = 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;
}

var time2 = new Date().Format("yyyy-MM-dd hh:mm:ss");

倒计时

function invertedTime(endtime) {
    
    

	var nowtime = new Date(),
		lefttime = endtime.getTime() - nowtime.getTime(), //距离结束时间的毫秒数
		d = Math.floor(lefttime / (1000 * 60 * 60 * 24)), //计算天数
		h = Math.floor(lefttime / (1000 * 60 * 60) % 24), //计算小时数
		m = Math.floor(lefttime / (1000 * 60) % 60), //计算分钟数
		s = Math.floor(lefttime / 1000 % 60); //计算秒数
	return {
    
    
		d,h,m,s
	}
}
setInterval(()=>{
    
    
	invertedTime(new Date("2020-11-10 15:30:00"))
},1000)

计时器

function timing(timestamp) {
    
    
	var lefttime = (new Date()) - (timestamp), //计算已用的毫秒数  
		d = Math.floor(lefttime / (1000 * 60 * 60 * 24)), //计算天数
		h = Math.floor(lefttime / (1000 * 60 * 60) % 24), //计算小时数
		m = Math.floor(lefttime / (1000 * 60) % 60), //计算分钟数
		s = Math.floor(lefttime / 1000 % 60); //计算秒数

	return {
    
    
		d,h,m,s
	}
}
setInterval(()=>{
    
    
	timing(new Date("2020-11-10 15:30:00"))
},1000)

时间戳转 HH-MM-SS

function formatDate(date, fmt) {
    
    
	if (/(y+)/.test(fmt)) {
    
    
		fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
	}
	let o = {
    
    
		'M+': date.getMonth() + 1,
		'd+': date.getDate(),
		'h+': date.getHours(),
		'm+': date.getMinutes(),
		's+': date.getSeconds()
	}
	for (let k in o) {
    
    
		if (new RegExp(`(${
      
      k})`).test(fmt)) {
    
    
			let str = o[k] + ''
			fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : ('00' + str).substr(str.length))
		}
	}
	return fmt
}

formatDate('1605083318'); // 2020-11-11 16:28:38

获取时间戳

function stamp(){
    
    
	return Date.parse(new Date());
}

stamp('2020-11-11 16:28:38')

多久之前(刚刚,x分钟前,x小时前,x月前)

function timeago(dateTimeStamp) {
    
     //dateTimeStamp是一个时间毫秒,注意时间戳是秒的形式,在这个毫秒的基础上除以1000,就是十位数的时间戳。13位数的都是时间毫秒。
 var minute = 1000 * 60; //把分,时,天,周,半个月,一个月用毫秒表示
 var hour = minute * 60;
 var day = hour * 24;
 var week = day * 7;
 var halfamonth = day * 15;
 var month = day * 30;
 var now = new Date().getTime(); //获取当前时间毫秒
 console.log(now)
 var diffValue = now - dateTimeStamp; //时间差

 if (diffValue < 0) {
    
    
     return;
 }
 var minC = diffValue / minute; //计算时间差的分,时,天,周,月
 var hourC = diffValue / hour;
 var dayC = diffValue / day;
 var weekC = diffValue / week;
 var monthC = diffValue / month;
 if (monthC >= 1 && monthC <= 3) {
    
    
     result = " " + parseInt(monthC) + "月前"
 } else if (weekC >= 1 && weekC <= 3) {
    
    
     result = " " + parseInt(weekC) + "周前"
 } else if (dayC >= 1 && dayC <= 6) {
    
    
     result = " " + parseInt(dayC) + "天前"
 } else if (hourC >= 1 && hourC <= 23) {
    
    
     result = " " + parseInt(hourC) + "小时前"
 } else if (minC >= 1 && minC <= 59) {
    
    
     result = " " + parseInt(minC) + "分钟前"
 } else if (diffValue >= 0 && diffValue <= minute) {
    
    
     result = "刚刚"
 } else {
    
    
     var datetime = new Date();
     datetime.setTime(dateTimeStamp);
     var Nyear = datetime.getFullYear();
     var Nmonth = datetime.getMonth() + 1 < 10 ? "0" + (datetime.getMonth() + 1) : datetime.getMonth() + 1;
     var Ndate = datetime.getDate() < 10 ? "0" + datetime.getDate() : datetime.getDate();
     var Nhour = datetime.getHours() < 10 ? "0" + datetime.getHours() : datetime.getHours();
     var Nminute = datetime.getMinutes() < 10 ? "0" + datetime.getMinutes() : datetime.getMinutes();
     var Nsecond = datetime.getSeconds() < 10 ? "0" + datetime.getSeconds() : datetime.getSeconds();
     result = Nyear + "-" + Nmonth + "-" + Ndate
 }
 return result;
}


2.
beautifyTime = time => {
    
    
 // time为时间戳
 const delta = (new Date().getTime() - time) / 1000
 if (delta / (60 * 60 * 24 * 365) > 1)
   return `${
      
      parseInt(delta / (60 * 60 * 24 * 365))}年前`
 if (delta / (60 * 60 * 24 * 30) > 1)
   return `${
      
      parseInt(delta / (60 * 60 * 24 * 30))}个月前`
 if (delta / (60 * 60 * 24 * 7) > 1)
   return `${
      
      parseInt(delta / (60 * 60 * 24 * 7))}周前`
 if (delta / (60 * 60 * 24) > 1)
   return `${
      
      parseInt(delta / (60 * 60 * 24))}天前`
 if (delta / (60 * 60) > 1) return `${
      
      parseInt(delta / (60 * 60))}小时前`
 if (delta / 60 > 1) return `${
      
      parseInt(delta / 60)}分钟前`
 return '刚刚'
}

猜你喜欢

转载自blog.csdn.net/qq_41950190/article/details/109625595