js操作时间

获取当前日期

const Format = function(fmt) { // author: meizz
        const date = new Date();
        var o = {
            "M+": date.getMonth() + 1, // 月份
            "d+": date.getDate(), // 日
            "h+": date.getHours(), // 小时
            "m+": date.getMinutes(), // 分
            "s+": date.getSeconds(), // 秒
            "q+": Math.floor((date.getMonth() + 3) / 3), // 季度
            "S": date.getMilliseconds() // 毫秒
        };
        if (/(y+)/.test(fmt))
            fmt = fmt.replace(RegExp.$1, (date.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;
    }
}

console.log(Format("yyyy-MM-dd hh:mm:ss"))

时间戳转 HH-MM-SS

function formatDate(time, fmt) {
   let date = new Date(Number(time));

   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;
};


console.log(formatDate('1605083318', 'mm:ss'));; // 2020-11-11 16:28:38

倒计时

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)

获取时间戳

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

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

固定时间获取时间戳

function stamp(date){
	return new Date(date).getTime()
}

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

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

/**
 * 日期计算多久之前
 * @param {String} strtime (如:'2012-12-12 12:12:12')
 * @retunrs {String}  (如:'刚刚','一周前')
 */
function timeago(strtime = '2012-12-12 12:12:12') {
    var date = new Date(strtime);
    var date = new Date(strtime.replace(/-/g, '/'));
    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();
    const delta = (new Date().getTime() - date.getTime()) / 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 '刚刚'
}
console.log(timeago('2010-11-11 16:28:38'));; // 10年前

获取多少天之前的日期时间

SelectDate() {
   var end = new Date();
   var start = new Date();
   start.setDate(start.getDate() - 20); // 20天之前的
   var startYear = start.getFullYear();
   var startMonth = start.getMonth() + 1 >= 10 ? start.getMonth() + 1 : "0" + (start.getMonth() + 1);
   var startDate = start.getDate() >= 10 ? start.getDate() : "0" + start.getDate();
   var endYear = end.getFullYear();
   var endtMonth = end.getMonth() + 1 >= 10 ? end.getMonth() + 1 : "0" + (end.getMonth() + 1);
   var endDate = end.getDate() >= 10 ? end.getDate() : "0" + end.getDate();
   value1 = startYear + "-" + startMonth + "-" + startDate; // 20天之前日期
   value2 = endYear + "-" + endtMonth + "-" + endDate;  // 今天的日期
},
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值