第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

全部開(kāi)發(fā)者教程

JavaScript 入門(mén)教程

JavaScript Date

Date 用于創(chuàng)建一個(gè) JavaScript Date 實(shí)例,該實(shí)例呈現(xiàn)時(shí)間中的某個(gè)時(shí)刻。

Date 對(duì)象可以用于處理日期和時(shí)間。

Date 對(duì)象使用的頻率非常高,大量的業(yè)務(wù)需要對(duì)時(shí)間進(jìn)行操作。

1. 基本使用

Date 需要實(shí)例化后使用。

var date = new Date();

時(shí)間最大的兩個(gè)使用場(chǎng)景是格式化時(shí)間與獲取時(shí)間戳。

1.1 獲取時(shí)間戳

當(dāng)實(shí)例化時(shí)沒(méi)有傳遞參數(shù)給 Date 的時(shí)候,則表示創(chuàng)建的對(duì)象為實(shí)例化時(shí)刻的時(shí)間。

使用 getTime 即可獲取時(shí)間戳。

var date = new Date();
var timestamp = date.getTime();

console.log(timestamp); // 輸出當(dāng)前時(shí)間的時(shí)間戳

部分開(kāi)發(fā)者會(huì)利用隱式轉(zhuǎn)換的規(guī)則來(lái)獲取時(shí)間戳。

var date = new Date();
var timestamp = +date;

console.log(timestamp); // 輸出當(dāng)前時(shí)間的時(shí)間戳

也可以通過(guò) valueOf 來(lái)獲取時(shí)間戳。

var date = new Date();
var timestamp = date.valueOf();

console.log(timestamp); // 還是輸出當(dāng)前時(shí)間的時(shí)間戳

推薦使用 getTime 方法來(lái)獲取時(shí)間戳,以便他人閱讀代碼以及避免不必要的問(wèn)題。

1.2 格式化時(shí)間

格式化時(shí)間可以理解成把時(shí)間處理成想要的格式,如年-月-日 時(shí):分;秒。

通過(guò) Date 對(duì)象提供的一些方法,可以獲得到對(duì)應(yīng)的時(shí)間屬性。

假如想把時(shí)間格式化成年/月/日 時(shí):分:秒的形式:

var date = new Date();

var YYYY = date.getFullYear();
var MM = date.getMonth() + 1;
var DD = date.getDate();
var hh = date.getHours();
var mm = date.getMinutes();
var ss = date.getSeconds();

console.log([YYYY, '/', MM, '/', DD, ' ', hh, ':', mm, ':', ss].join(''));

通過(guò) Date 對(duì)象提供的獲取年、月、日、時(shí)、分、秒的方法獲取到對(duì)應(yīng)的值,最后按照想要的格式拼接即可。

需要注意的是 getMonth() 方法返回的月份是 0 至 11 ,更像是月份的索引,實(shí)際上對(duì)應(yīng)的月份還要加上 1 。

2. 構(gòu)造函數(shù)的參數(shù)

Date 對(duì)象可以提供 4 種類(lèi)型的參數(shù),通過(guò)參數(shù)決定時(shí)間,最后對(duì)象的實(shí)例的操作都圍繞這個(gè)決定的時(shí)間。

2.1 不傳遞參數(shù)

當(dāng)不傳遞參數(shù)的時(shí)候,時(shí)間會(huì)被設(shè)置為實(shí)例化那一時(shí)刻的時(shí)間。

2.2 Unix 時(shí)間戳

這個(gè)方式與第一種不傳遞參數(shù)的方式是最常用的兩種。

應(yīng)用場(chǎng)景大部分為從服務(wù)端獲取數(shù)據(jù)后,對(duì)時(shí)間戳進(jìn)行格式化顯示。

var data = { _id: '', createdAt: 1482632382582, content: '' };

var date = new Date(data.createdAt);

var YYYY = date.getFullYear();
var MM = date.getMonth() + 1;
var DD = date.getDate();
var hh = date.getHours();
var mm = date.getMinutes();
var ss = date.getSeconds();

console.log([YYYY, '/', MM, '/', DD, ' ', hh, ':', mm, ':', ss].join(''));
// 輸出:2016/12/25 10:19:42

2.3 時(shí)間戳字符串

這里并不是指字符串形式的 Unix 時(shí)間戳 ,而是符合 IETF-compliant RFC 2822 timestamps 或 version of ISO8601 標(biāo)準(zhǔn)的時(shí)間字符串。

實(shí)際上只要能被 Date.parse 正確解析成時(shí)間戳的字符串,都可以作為參數(shù)傳遞過(guò)去。

var timestamp = Date.parse('2020/02/02 11:22:33');

var date1 = new Date(timestamp);
var date2 = new Date('2020/02/02 11:22:33');

2.4 日期的每一個(gè)時(shí)間屬性

這里的時(shí)間屬性是指:年、月、日、時(shí)、分、秒、毫秒。

參數(shù)也按照這個(gè)順序傳遞。

// 2048年10月24日 9點(diǎn)9分6秒
var date = new Date(2048, 10 - 1, 24, 9, 9, 6, 0);

var YYYY = date.getFullYear();
var MM = date.getMonth() + 1;
var DD = date.getDate();
var hh = date.getHours();
var mm = date.getMinutes();
var ss = date.getSeconds();

console.log([YYYY, '/', MM, '/', DD, ' ', hh, ':', mm, ':', ss].join(''));
// 輸出:2048/10/24 9:9:6

第二個(gè)參數(shù)之所以要減去 1 ,是因?yàn)樵路菔菑?0 開(kāi)始計(jì)算的,所以十月應(yīng)該表示成 9 。

3. 其他常用方法

常量 描述
Date.UTC 方法接受的參數(shù)同日期構(gòu)造函數(shù)接受最多參數(shù)時(shí)一樣,返回從 1970-1-1 00:00:00 UTC到指定日期的的毫秒數(shù)。
Date.now 返回自 1970 年 1 月 1 日 00:00:00 (UTC) 到當(dāng)前時(shí)間的毫秒數(shù)。
Date.parse 解析一個(gè)表示某個(gè)日期的字符串,并返回從1970-1-1 00:00:00 UTC 到該日期對(duì)象(該日期對(duì)象的 UTC 時(shí)間)的毫秒數(shù),如果該字符串無(wú)法識(shí)別,或者一些情況下,包含了不合法的日期數(shù)值(如:2015-02-31),則返回值為NaN。
Date.getDate 根據(jù)本地時(shí)間,返回一個(gè)指定的日期對(duì)象為一個(gè)月中的哪一日(從 1–31)。
Date.getDay 根據(jù)本地時(shí)間,返回一個(gè)具體日期中一周的第幾天,0 表示星期天。
Date.getFullYear 根據(jù)本地時(shí)間返回指定日期的年份。
Date.getHours 方法根據(jù)本地時(shí)間,返回一個(gè)指定的日期對(duì)象的小時(shí)。
Date.getMilliseconds 根據(jù)本地時(shí)間,返回一個(gè)指定的日期對(duì)象的毫秒數(shù)。
Date.getMinutes 方法根據(jù)本地時(shí)間,返回一個(gè)指定的日期對(duì)象的分鐘數(shù)。
Date.getMonth 根據(jù)本地時(shí)間,返回一個(gè)指定的日期對(duì)象的月份,為基于 0 的值(0 表示一年中的第一月)。
Date.getSeconds 方法根據(jù)本地時(shí)間,返回一個(gè)指定的日期對(duì)象的秒數(shù)。

4. 小結(jié)

Date 對(duì)象用于處理日期與時(shí)間。

通常會(huì)采用不傳參或者傳遞一個(gè) Unix 時(shí)間戳來(lái)生成 Date 實(shí)例,另幾種參數(shù)形式使用場(chǎng)景較少。

需要注意的是,getMonth 方法返回的月份,是從 0 開(kāi)始計(jì)數(shù)的,對(duì)應(yīng)真實(shí)月份需要加上 1