成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

【重溫基礎(chǔ)】7.時(shí)間對(duì)象

YuboonaZhang / 2930人閱讀

摘要:本文是重溫基礎(chǔ)系列文章的第七篇。系列目錄復(fù)習(xí)資料資料整理個(gè)人整理重溫基礎(chǔ)語(yǔ)法和數(shù)據(jù)類(lèi)型重溫基礎(chǔ)流程控制和錯(cuò)誤處理重溫基礎(chǔ)循環(huán)和迭代重溫基礎(chǔ)函數(shù)重溫基礎(chǔ)表達(dá)式和運(yùn)算符重溫基礎(chǔ)數(shù)字本章節(jié)復(fù)習(xí)的是中的時(shí)間對(duì)象,一些處理的方法。

本文是 重溫基礎(chǔ) 系列文章的第七篇。
今日感受:做好自律。

系列目錄:

【復(fù)習(xí)資料】ES6/ES7/ES8/ES9資料整理(個(gè)人整理)

【重溫基礎(chǔ)】1.語(yǔ)法和數(shù)據(jù)類(lèi)型

【重溫基礎(chǔ)】2.流程控制和錯(cuò)誤處理

【重溫基礎(chǔ)】3.循環(huán)和迭代

【重溫基礎(chǔ)】4.函數(shù)

【重溫基礎(chǔ)】5.表達(dá)式和運(yùn)算符

【重溫基礎(chǔ)】6.數(shù)字

本章節(jié)復(fù)習(xí)的是JS中的時(shí)間對(duì)象,一些處理的方法。

前置知識(shí)
JavaScript中的時(shí)間是以1970年1月1日00:00:00以來(lái)的毫秒數(shù)來(lái)儲(chǔ)存數(shù)據(jù)類(lèi)型。
Data對(duì)象的范圍是相對(duì)距離UTC1970年1月1日的前后100,000,000天。
創(chuàng)建一個(gè)時(shí)間對(duì)象:

let d = new Date([params]);

參數(shù)params可以是:

無(wú)參數(shù):默認(rèn)創(chuàng)建今天的日期和時(shí)間。

一個(gè)符合以下格式的表示日期的字符串:

"月 日, 年 時(shí):分:秒."或者"年月日 時(shí)分秒"

let d = new Date("2018-12-20");

如果你省略時(shí)、分、秒,那么他們的值將被設(shè)置為0。

一個(gè)年,月,日的整型值的集合:

let d = new Date(2018, 12, 20);

一個(gè)年,月,日,時(shí),分,秒的集合:

let d = new Date(2018, 12, 20, 23, 20, 10);

這里Date對(duì)象涉及到的方法特別多,請(qǐng)移步W3school JavaScript Date 對(duì)象

1.Date對(duì)象的方法

常用處理的方法有以下幾類(lèi):

"set":用于設(shè)置Date對(duì)象的日期和時(shí)間的值。

"get":用去獲取Date對(duì)象的日期和時(shí)間的值。

"to":用于返回Date對(duì)象的字符串格式的值。

"parseUTC":用于解析Date字符串。

需要注意的Date對(duì)象的一些數(shù)值問(wèn)題:

秒/分: 0 - 59;

時(shí): 0 - 23;

星期: 0(周日) - 6(周六)

日期: 1 - 31

月份: 0(一月) - 11(十二月)

年份: 從1900開(kāi)始的年數(shù)

例如:

let d = new Date("2018-12-10");
let d1 = d.getMonth();    // 11
let d2 = d.getFullYear(); // 2018

獲取今年剩下的天數(shù):

let d = new Date();
let e = new Date(2018, 11, 31, 23, 59, 59, 999);  // 設(shè)置年月日時(shí)分秒
e.setFullYear(d.getFullYear); // 設(shè)置為今年
let m = 24 * 60 * 60 * 1000;  // 每日毫秒數(shù)
let result = (e.getTime() - d.getTime()) / m;
result = Math.round(result);  // 返回今年剩余天數(shù)

這里Date對(duì)象涉及到的方法特別多,請(qǐng)移步W3school JavaScript Date 對(duì)象

注意:

格林尼治標(biāo)準(zhǔn)時(shí)間(GMT)英國(guó)、愛(ài)爾蘭、冰島和葡萄牙屬于該時(shí)區(qū)。這個(gè)時(shí)區(qū)與中國(guó)北京時(shí)間的時(shí)差是8個(gè)小時(shí),也就是說(shuō)比北京時(shí)間晚8個(gè)小時(shí)。
2.使用Date對(duì)象 2.1 設(shè)置日期

為一個(gè)時(shí)間對(duì)象設(shè)置指定日期(2018年12月20日),注意這里:和前面說(shuō)的一樣,12月在JS的Date對(duì)象中,是用11表示。

let d = new Date();
d.setFullYear(2018,11,20);

設(shè)置時(shí)間對(duì)象10天以后:

let d = new Date();
d.setDate(d.getDate() + 10); // 先獲取當(dāng)天的日期,再設(shè)置到指定天數(shù)以后
2.2 比較時(shí)間

通常情況下,像下面這樣簡(jiǎn)單比較:

let d = new Date();
let e = new Date();
d.setFullYear(2018,10,10);
let r = d > e ? "good" : "nice" ; // nice

還可以比較兩個(gè)日期相差多少天:

let d1 = new Date("2018-10-10");
let d2 = new Date("2018-11-11");
let d3 = (d2 - d1) / (1000 * 60 * 60 * 24);  // 32
2.3 計(jì)算N天后星期幾
function d (num){
    if(typeof Number(num) === "number"){
        let d1 = new Date();
        let d2 = d1.setDate(d1.getDate() + Number(num));
        let n = new Date(d2).getDay();
        let s = "";
        switch (n){
            case 0 : 
                s = "星期天";
                break;
            case 1 : 
                s = "星期一";
                break;
            case 2 : 
                s = "星期二";
                break;
            case 3 : 
                s = "星期三";
                break;
            case 4 : 
                s = "星期四";
                break;
            case 5 : 
                s = "星期五";
                break;
            case 6 : 
                s = "星期六";
                break;
        }
        return s;
    }else {
        alert("請(qǐng)輸入正確數(shù)字!");
    }
}
2.4 格式化日期

常見(jiàn)的日期格式化為字符串的方法有這些:

toDateString()——以特定于實(shí)現(xiàn)的格式顯示星期幾、月、日和年;

toTimeString()——以特定于實(shí)現(xiàn)的格式顯示時(shí)、分、秒和時(shí)區(qū);

toLocaleDateString()——以特定與地區(qū)的格式顯示星期幾、月、日和年;

toLocaleTimeString()——以特定于實(shí)現(xiàn)的格式顯示時(shí)、分、秒;

toUTCString()——以特定于實(shí)現(xiàn)的格式完整的UTC日期。

獲取并格式化日期:年-月-日

function d (date){
    return date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate();
}
d(new Date()); // "2018-12-20"

日期字符串轉(zhuǎn)為 年-月-日

function d (str){
    return new Date(Date.parse(str.replace(/-/g, "/")));
    // 或者
    // return new Date(str.replace(/-/g, "/"));
}

獲取當(dāng)前星期幾

let d = "今天是星期" + "日一二三四五六".charat(new Date().getDay());
2.5 獲取某年某月的天數(shù)

這里有個(gè)小技巧,若給new Date()傳入一個(gè)如aaaa/aa/0參數(shù)時(shí),可以得到aa月的前一個(gè)月的最后一天,如傳入2018/12/0會(huì)得到2018/11/30。

值得注意的是: 在Chrome瀏覽器上并不支持,會(huì)返回Invalid Date導(dǎo)致結(jié)果為NaN,但是我們可以使用aaaa,aa,0形式作為參數(shù),下面分別寫(xiě)出這兩種:

// aaaa/aa/0形式 只要傳入年和月 
function d (y, m){
    m = parseInt(m, 10) + 1;
    let r = new Date(y + "/" + m + "/0");
    return r.getDate();
}

// aaaa,aa,0形式 只要傳入年和月 
function d (y, m){
    m = parseInt(m, 10) + 1;
    let r = new Date(y, m, 0);
    return r.getDate();
}
2.6 獲取上個(gè)月/下個(gè)月日期("yyyy-mm-dd")

傳入?yún)?shù)的格式"yyyy-mm-dd",其實(shí)也可以是Date()對(duì)象,大家可以自行嘗試。

// 上個(gè)月 date格式"yyyy-mm-dd"
function my_date (date){
    let arr = date.split("-");
    let y = arr[0] , m = arr[1], d = arr[2];  // 獲取當(dāng)前的年月日
    // ES6語(yǔ)法 let [y,m,d] = arr;
    let day = new Date(y,m,0);
    day = day.getDate(); // 獲取當(dāng)前月份的天數(shù)

    let y2 = y, m2 = parseInt(m) - 1;
    if(m2 == 0){
        y2 = parseInt(y2) -1;
        m2 = 12;
    }

    let d2 = d, day2 = new Date(y2, m2, 0);
    day2 = day2.getDate();
    if(d2 > day2){
        d2 = day2;
    }
    if(m2 < 10){
        m2 = "0" + m2;
    }

    return y2 + "-" + m2 + "-" + d2;
}
my_date("2018-1-20");  //"2017-12-20"

下個(gè)月的計(jì)算方法也是相似:

// 上個(gè)月 date格式"yyyy-mm-dd"
function my_date (date){
    let arr = date.split("-");
    let y = arr[0] , m = arr[1], d = arr[2];  // 獲取當(dāng)前的年月日
    let day = new Date(y,m,0);
    day = day.getDate(); // 獲取當(dāng)前月份的天數(shù)

    // 和計(jì)算上個(gè)月的區(qū)別   
    let y2 = y, m2 = parseInt(m) + 1;
    if(m2 == 13){   
        y2 = parseInt(y2) + 1;
        m2 = 1;
    }

    let d2 = d, day2 = new Date(y2, m2, 0);
    day2 = day2.getDate();
    if(d2 > day2){
        d2 = day2;
    }
    if(m2 < 10){
        m2 = "0" + m2;
    }

    return y2 + "-" + m2 + "-" + d2;
}
my_date("2018-12-20");  // "2019-01-20"
參考資料

1.MDN 數(shù)字和日期
2. JS日期Date詳解與實(shí)例擴(kuò)展

本部分內(nèi)容到這結(jié)束

Author 王平安
E-mail [email protected]
博 客 www.pingan8787.com
微 信 pingan8787
每日文章推薦 https://github.com/pingan8787...
JS小冊(cè) js.pingan8787.com

歡迎關(guān)注微信公眾號(hào)【前端自習(xí)課】每天早晨,與您一起學(xué)習(xí)一篇優(yōu)秀的前端技術(shù)博文 .

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/100267.html

相關(guān)文章

  • 重溫基礎(chǔ)】11.Map和Set對(duì)象

    摘要:本文是重溫基礎(chǔ)系列文章的第十一篇。返回一個(gè)布爾值,表示該值是否為的成員。使用回調(diào)函數(shù)遍歷每個(gè)成員。與數(shù)組相同,對(duì)每個(gè)成員執(zhí)行操作,且無(wú)返回值。 本文是 重溫基礎(chǔ) 系列文章的第十一篇。 今日感受:注意身體,生病花錢(qián)又難受。 系列目錄: 【復(fù)習(xí)資料】ES6/ES7/ES8/ES9資料整理(個(gè)人整理) 【重溫基礎(chǔ)】1.語(yǔ)法和數(shù)據(jù)類(lèi)型 【重溫基礎(chǔ)】2.流程控制和錯(cuò)誤處理 【重溫基礎(chǔ)】3....

    meteor199 評(píng)論0 收藏0
  • 重溫基礎(chǔ)】14.元編程

    摘要:本文是重溫基礎(chǔ)系列文章的第十四篇。元,是指程序本身。有理解不到位,還請(qǐng)指點(diǎn),具體詳細(xì)的介紹,可以查看維基百科元編程。攔截,返回一個(gè)布爾值。 本文是 重溫基礎(chǔ) 系列文章的第十四篇。 這是第一個(gè)基礎(chǔ)系列的最后一篇,后面會(huì)開(kāi)始復(fù)習(xí)一些中級(jí)的知識(shí)了,歡迎持續(xù)關(guān)注呀! 接下來(lái)會(huì)統(tǒng)一整理到我的【Cute-JavaScript】的JavaScript基礎(chǔ)系列中。 今日感受:獨(dú)樂(lè)樂(lè)不如眾樂(lè)樂(lè)...

    cc17 評(píng)論0 收藏0
  • 重溫基礎(chǔ)】12.使用對(duì)象

    摘要:本文是重溫基礎(chǔ)系列文章的第十二篇。注意對(duì)象的名稱(chēng),對(duì)大小寫(xiě)敏感。基礎(chǔ)用法第一個(gè)參數(shù)是目標(biāo)對(duì)象,后面參數(shù)都是源對(duì)象。用途遍歷對(duì)象屬性。用途將對(duì)象轉(zhuǎn)為真正的結(jié)構(gòu)。使用場(chǎng)景取出參數(shù)對(duì)象所有可遍歷屬性,拷貝到當(dāng)前對(duì)象中。類(lèi)似方法合并兩個(gè)對(duì)象。 本文是 重溫基礎(chǔ) 系列文章的第十二篇。 今日感受:需要總結(jié)下2018。 這幾天,重重的感冒發(fā)燒,在家休息好幾天,傷···。 系列目錄: 【復(fù)習(xí)資料...

    garfileo 評(píng)論0 收藏0
  • 重溫基礎(chǔ)】15.JS對(duì)象介紹

    摘要:構(gòu)造函數(shù)通常首字母大寫(xiě),用于區(qū)分普通函數(shù)。這種關(guān)系常被稱(chēng)為原型鏈,它解釋了為何一個(gè)對(duì)象會(huì)擁有定義在其他對(duì)象中的屬性和方法。中所有的對(duì)象,都有一個(gè)屬性,指向?qū)嵗龑?duì)象的構(gòu)造函數(shù)原型由于是個(gè)非標(biāo)準(zhǔn)屬性,因此只有和兩個(gè)瀏覽器支持,標(biāo)準(zhǔn)方法是。 從這篇文章開(kāi)始,復(fù)習(xí) MDN 中級(jí)教程 的內(nèi)容了,在初級(jí)教程中,我和大家分享了一些比較簡(jiǎn)單基礎(chǔ)的知識(shí)點(diǎn),并放在我的 【Cute-JavaScript】系...

    booster 評(píng)論0 收藏0
  • 重溫基礎(chǔ)】8.字符串

    摘要:字符串拓展在我們判斷字符串是否包含另一個(gè)字符串時(shí),之前,我們只有方法,之后我們又多了三種方法返回布爾值,表示是否找到參數(shù)字符串。返回布爾值,表示參數(shù)字符串是否在原字符串的頭部。 本文是 重溫基礎(chǔ) 系列文章的第八篇。今日感受:人在異鄉(xiāng),也不能忘記湯圓。 系列目錄: 【復(fù)習(xí)資料】ES6/ES7/ES8/ES9資料整理(個(gè)人整理) 【重溫基礎(chǔ)】1.語(yǔ)法和數(shù)據(jù)類(lèi)型 【重溫基礎(chǔ)】2.流程控制和...

    Batkid 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<