1. 程式人生 > 實用技巧 >JS獲取時間(當前-過去-未來)

JS獲取時間(當前-過去-未來)

/**
         * 獲取時間格式為:1970-01-01 00:00
         * @param  {引數} params 
         * 屬性         型別      預設值        必填    說明
         * date         Date    new Date()      否     Date物件
         * ms            int         0          否     獲取距當前ms毫秒時間
         * dateFormat   String      /           否      日期分隔符
         * timeFormat   string      :           否      時間分隔符
         * 
         
*/ const formatTime = (params) => { var ms = (!params.ms ? 0 : params.ms); var date = !params.data ? new Date(new Date().getTime() + ms) : new Date(params.date.getTime() + ms); const year = date.getFullYear(); const month = date.getMonth() + 1; const day
= date.getDate(); const hour = date.getHours(); const minute = date.getMinutes(); const second = date.getSeconds(); const dateFormat = (!params.dateFormat) ? "/" : params.dateFormat; const timeFormat = (!params.timeFormat) ? ":" : params.timeFormat;
return [year, month, day].map(formatNumber).join(dateFormat) + ' ' + [hour, minute, second].map(formatNumber).join(timeFormat); } const formatNumber = n => { n = n.toString(); return n[1] ? n : '0' + n; }

測試案例:

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8" name="viewport" content="width=device-width;initscale=1.0" />
    <title>js獲取當前/未來時間</title>
</head>

<body>
    <h1>5分鐘前時間:<span id="beforeFiveMinuteTime"></span></h1>
    <h1>當前時間:<span id="nowTime"></span></h1>
    <h1>5分鐘後時間:<span id="afterFiveMinuteTime"></span></h1>

    <script type="text/javascript">
        /**
         * 獲取時間格式為:1970-01-01 00:00
         * @param  {引數} params 
         * 屬性         型別      預設值        必填    說明
         * date         Date    new Date()      否     Date物件
         * ms            int         0          否     獲取距當前ms毫秒時間
         * dateFormat   String      /           否      日期分隔符
         * timeFormat   string      :           否      時間分隔符
         * 
         */
        const formatTime = (params) => {
            var ms = (!params.ms ? 0 : params.ms);
            var date = !params.data ? new Date(new Date().getTime() + ms) : new Date(params.date.getTime() + ms);
            const year = date.getFullYear();
            const month = date.getMonth() + 1;
            const day = date.getDate();
            const hour = date.getHours();
            const minute = date.getMinutes();
            const second = date.getSeconds();
            const dateFormat = (!params.dateFormat) ? "/" : params.dateFormat;
            const timeFormat = (!params.timeFormat) ? ":" : params.timeFormat;
            return [year, month, day].map(formatNumber).join(dateFormat) + ' ' + [hour, minute, second].map(formatNumber).join(timeFormat);
        }

        const formatNumber = n => {
            n = n.toString();
            return n[1] ? n : '0' + n;
        }


        window.onload = () => {
            document.getElementById("beforeFiveMinuteTime").innerHTML = formatTime({
                date: new Date(),
                ms: -5 * 60 * 1000,
                dateFormat: "-"
            });

            document.getElementById("nowTime").innerHTML = formatTime({
                date: new Date(),
                timeFormat: "/"
            });
            document.getElementById("afterFiveMinuteTime").innerHTML = formatTime({
                date: new Date(),
                ms: 5 * 60 * 1000
            });
        }
    </script>

</body>

</html>

結果: