13-第十三章 日期物件Date

weixin_33913332發表於2019-02-08

JavaScript 日期處理類庫 http://momentjs.cn/

解決輪播圖點選太快的方法

設定一箇舊時間
點選的瞬間立馬拿到一個新的時間,新時間 - 舊時間 如果 小於 動畫的時間,那等二次點選不生效,再更新舊時間

        //  舊的時間
        let oldTime = new Date();
        document.onclick = () => {             
            //  限制點選間隔時間,防止點選太快
            if (new Date() - oldTime < 600) {
                return;
            }
            oldTime = new Date();
        }

倒數計時低於10顯示0(n)

const num = n => n < 10 ? '0' + n : n + "";

夏令時 開始 4月中旬第一個星期日,晚上2.00 - 3.00
結束 9月中旬 第一個星期日晚上 2.00

一、 new Date() 獲取當前時間


1、 new Date() 本地時間

裡面是字串時 2018-07-08T20:30:00 月份大於13 無效
裡面是數字時,月份要 - 1 月份大於13 自動進1
new Data(2018, 6, 1, 21, 35, 00)

var d = new Date();
alert(d);  //Wed Aug 23 2017 21:36:24 GMT+0800 (中國標準時間)

2、 toUTCString() 當前 世界時

toUTCString() 根據世界時,把Date物件轉換為字串。

var d = new Date();
var utc =  d.toUTCString()
alert( utc );//Wed, 23 Aug 2017 13:40:29 GMT

3、獲取具體時間

方法 描述

getFullYear()
getMonth() + 1 月(0 ~ 11)。
getDate() 天 (1 ~ 31)。
getDay() 周幾 (0 ~ 6),星期天為0
getHours()
getMinutes()
getSeconds()
getMilliseconds() 毫秒
getTime() 返回 1970 年 1 月 1 日至今的毫秒數
H5 new Data.now() 返回 1970 年 1 月 1 日至今的毫秒數

new Date( Date.parse( new Date() ) );
字串格式通過 Date.parse() 變成數字,再通過 new Date() 轉化為一個物件
new Date().getTimezoneOffset()
世界時 - 本地時間 = 相差的毫秒值(分鐘)
new Date().getUTCHours()
拿到世界時這一刻的小時

    var d = new Date(),
    YY = d.getFullYear(),
    MM = d.getMonth() + 1,
    TT = d.getDate(),
    DD = d.getDay(),
    HH = d.getHours(),
    Min = d.getMinutes(),
    Sec = d.getSeconds(),
    Mil = d.getMilliseconds()

    alert(YY);  //2017

二、 日期格式化方法

date. toLocaleString() ——————–按照本地時間輸出 Locale
/ləʊ'kɑːl/ 區域設定
date.toLocaleDateString() —————本地時間 年 月 日
date.toLocaleTimeString() ————–本地時間 時 分 秒
date.toTimeString()————————本地 時 分 秒 時區
Date.UTC() ————————————世界時返回 1970 年 1 月 1 日 到指定日期的毫秒數

var d = Date.UTC(year,month,day,hours,minutes,seconds,ms);
alert(d);

三、 設定本地時間

日期物件相減得到的值為毫秒值

1、new Date(yy,mon,dd,hh,mm,ss,ms) 數字形式
new Date(yy,mon,dd,hh,mm,ss,ms) 可以預設,yy,mon為必須
new Date(2020,10,1)

2、new Date(‘yy/mon/dd/hh/mm/ss/ms’)字串形式
new Date('2020/10/1')

3、new Date(num ) 毫秒數 到1970年的毫秒數(一個值是獲取到的是毫秒值)
new Date('2020/10/1')

引數 描述

yy 年 (四位數)
mon 月份 ( 0~11))
dd: 天 ( 1~31 )
hh 時 ( 0~23)
mm 分 ( 0~59)
ss 秒 ( 0~59)
ms 毫秒 (0 ~ 999)

var t = new Date(2017,10,15,2,30,05);
console.log(t);//Wed Nov 15 2017 02:30:05 GMT+0800 (中國標準時間)

案例1:系統時間
案例2:倒數計時

四、 getTimezoneOffset

返回本地時間與格林尼治標準時間 (GMT) 的分鐘差

1.var d = new Date();

3.//拿到毫秒數
4.var len = d.getTime();

6.//本地時間與GMT時間的時間差
7.var offset = d.getTimezoneOffset()601000;

9.//得到現在的格林尼治
10.var utcTime = len + offset;

12.//num時區 得到不同時區的時間
13.var data = new Date(utcTime+60601000*num);
案例3:世界時間

相關文章