Js 時間戳顯示和計算時間間隔

顯示時間戳

不少地方會讓頁面顯示當前時間並實時計時功能,例:2019年5月23號 10:28::34 代碼實現以下:html

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數組

相關文章
相關標籤/搜索