JS Date對象


筆記整理自:廖雪峰老師的JS教程

簡介

在JavaScript中,Date對象用來表示日期和時間。

創建方式

1. 通過獲取系統當前時間創建

var now = new Date();

注意:當前時間是瀏覽器從本機操作系統獲取的時間,所以不一定准確,因為用戶可以把當前時間設定為任何值。

2. 通過指定日期和時間創建

1. 指定 年 月 日 [小時 [分[ 秒 [ 毫秒 ]]]] 創建

var d = new Date(2015, 5, 19, 20, 15, 30, 123);
d; // Fri Jun 19 2015 20:15:30 GMT+0800 (CST)

注意: JavaScript的Date對象月份值從0開始,牢記0=1月,1=2月,2=3月,……,11=12月。 此處與Java的Date對象一致

2.指定解析一個符合ISO 8601格式的字符串

var d = Date.parse('2015-06-24T19:49:22.875+08:00');
d; // 1435146562875
//但它返回的不是Date對象,而是一個時間戳。不過有時間戳就可以很容易地把它轉換為一個Date:
var date = new Date(d);
date; // Wed Jun 24 2015 19:49:22 GMT+0800 (CST)
date.getMonth(); // 5

注意: 使用Date.parse()時傳入的字符串使用實際月份01~12,轉換為Date對象后getMonth()獲取的月份值為0~11

3.通過指定時間戳創建

方式2已給出。

時區

Date對象表示的時間總是按瀏覽器所在時區顯示的,不過我們既可以顯示本地時間,也可以顯示調整后的UTC時間:

var d = new Date(1435146562875);
d.toLocaleString(); // '2015/6/24 下午7:49:22',本地時間(北京時區+8:00),顯示的字符串與操作系統設定的格式有關
d.toUTCString(); // 'Wed, 24 Jun 2015 11:49:22 GMT',UTC時間,與本地時間相差8小時

那么在JavaScript中如何進行時區轉換呢?實際上,只要我們傳遞的是一個number類型的時間戳,我們就不用關心時區轉換。任何瀏覽器都可以把一個時間戳正確轉換為本地時間。

時間戳是個什么東西?時間戳是一個自增的整數,它表示從1970年1月1日零時整的GMT時區開始的那一刻,到現在的毫秒數。假設瀏覽器所在電腦的時間是准確的,那么世界上無論哪個時區的電腦,它們此刻產生的時間戳數字都是一樣的,所以,時間戳可以精確地表示一個時刻,並且與時區無關

所以,我們只需要傳遞時間戳,或者把時間戳從數據庫里讀出來,再讓JavaScript自動轉換為當地時間就可以了。

要獲取當前時間戳,可以用:

'use strict';
if (Date.now) {
    console.log(Date.now()); // 老版本IE沒有now()方法
} else {
    console.log(new Date().getTime());
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM