亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

全部開發者教程

JavaScript 入門教程

JavaScript Date

Date 用于創建一個 JavaScript Date 實例,該實例呈現時間中的某個時刻。

Date 對象可以用于處理日期和時間。

Date 對象使用的頻率非常高,大量的業務需要對時間進行操作。

1. 基本使用

Date 需要實例化后使用。

var date = new Date();

時間最大的兩個使用場景是格式化時間與獲取時間戳。

1.1 獲取時間戳

當實例化時沒有傳遞參數給 Date 的時候,則表示創建的對象為實例化時刻的時間。

使用 getTime 即可獲取時間戳。

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

console.log(timestamp); // 輸出當前時間的時間戳

部分開發者會利用隱式轉換的規則來獲取時間戳。

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

console.log(timestamp); // 輸出當前時間的時間戳

也可以通過 valueOf 來獲取時間戳。

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

console.log(timestamp); // 還是輸出當前時間的時間戳

推薦使用 getTime 方法來獲取時間戳,以便他人閱讀代碼以及避免不必要的問題。

1.2 格式化時間

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

通過 Date 對象提供的一些方法,可以獲得到對應的時間屬性。

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

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(''));

通過 Date 對象提供的獲取年、月、日、時、分、秒的方法獲取到對應的值,最后按照想要的格式拼接即可。

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

2. 構造函數的參數

Date 對象可以提供 4 種類型的參數,通過參數決定時間,最后對象的實例的操作都圍繞這個決定的時間。

2.1 不傳遞參數

當不傳遞參數的時候,時間會被設置為實例化那一時刻的時間。

2.2 Unix 時間戳

這個方式與第一種不傳遞參數的方式是最常用的兩種。

應用場景大部分為從服務端獲取數據后,對時間戳進行格式化顯示。

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 時間戳字符串

這里并不是指字符串形式的 Unix 時間戳 ,而是符合 IETF-compliant RFC 2822 timestamps 或 version of ISO8601 標準的時間字符串。

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

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 日期的每一個時間屬性

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

參數也按照這個順序傳遞。

// 2048年10月24日 9點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

第二個參數之所以要減去 1 ,是因為月份是從 0 開始計算的,所以十月應該表示成 9 。

3. 其他常用方法

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

4. 小結

Date 對象用于處理日期與時間。

通常會采用不傳參或者傳遞一個 Unix 時間戳來生成 Date 實例,另幾種參數形式使用場景較少。

需要注意的是,getMonth 方法返回的月份,是從 0 開始計數的,對應真實月份需要加上 1。