Js 时间戳显示和计算时间间隔

显示时间戳

很多地方会让页面显示当前时间并实时计时功能,例:2019年5月23号 10:28::34 代码实现如下:

      getTime(){
        var mydate = new Date();
        var year = mydate.getFullYear();
        var month = mydate.getMonth() + 1;
        var day = mydate.getDate();
        var hour = mydate.getHours();
        var min = mydate.getMinutes();
        var sec = mydate.getSeconds();
        var date=year + '年' + pad(month) + '月' + pad(day) + '日 '+pad(hour) + ':' + pad(min) + ':' + pad(sec);
        return date
      }
	function pad(s){
				return s < 10 ? '0' + s : s;
      };
      //定时刷新
    $(function() {
    setInterval("getTime()", 1000);
     });

计算时间间隔,也就是时间段。例:03:34:45

  //mss 为时间戳差值,单位为ms
    formatDuring (mss) {
        var hours = parseInt(mss / (1000 * 60 * 60));
        var minutes = parseInt((mss % (1000 * 60 * 60)) / (1000 * 60));
        var seconds = parseInt((mss % (1000 * 60)) / 1000);
        var str =
          pad(hours)+
          ":" +
          pad(minutes) +
          ":" +
          pad(seconds);
        return str;
      };

ES6 语法----时间格式化及获取时间段

/**
 * 时间格式化
 * @param {*} date Date对象 或 时间戳
 * @param {*} fmt "yyyy-MM-dd hh:mm:ss"
 */
export function formatTime (date, fmt = "yyyy-MM-dd hh:mm:ss") {
    if (!date) return date;
    if (!(date instanceof Date)) {
        date = new Date(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) //季度
    };
    // 格式化年
    if (/(y+)/.test(fmt)) {
        fmt = fmt.replace(
            RegExp.$1,
            (date.getFullYear() + "").substr(4 - RegExp.$1.length)
        );
    }
    // 格式化毫秒
    if (/(S+)/.test(fmt)) {
        const tmp = date.getMilliseconds();
        fmt = fmt.replace(
            RegExp.$1,
            ("000" + tmp).substr(("" + tmp).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;
}

/**
 * 通过最近时间和单位(最近一周,最近一月等),获取时间段(时间戳数组)
 * @param {*} timeValue 最近时间
 * @param {*} timeUnit  时间单位
 */
export function getTimeRangeByUnit (timeValue, timeUnit) {
    let rangeArr = [];
    const start = new Date().getTime();
    const end = new Date().getTime();

    switch (timeUnit) {
        case "hours":
            rangeArr = [start - 3600 * 1000 * timeValue, end];
            break;
        case "day":
            rangeArr = [
                start - 3600 * 1000 * 24 * timeValue,
                end
            ];
            break;
        case "week":
            rangeArr = [
                start - 3600 * 1000 * 24 * 7 * timeValue,
                end
            ];
            break;
        case "month":
            rangeArr = [
                start - 3600 * 1000 * 24 * 30 * timeValue,
                end
            ];
            break;
        case "year":
            rangeArr = [
                start - 3600 * 1000 * 24 * 365 * timeValue,
                end
            ];
            break;
    }
    return rangeArr;
}

原文地址:https://www.cnblogs.com/yaohe/p/10910473.html