javaScript之Date應用

Date對象是 JavaScript 原生的時間庫。它以1970年1月1日00:00:00做爲時間的零點,能夠表示的時間範圍是先後各1億天(單位爲毫秒)。下面是本次分享的列表:javascript

  • 【一】Date()普通函數用法和構造函數用法
  • 【二】Date日期運算
  • 【三】Date靜態方法Date.now(),Date.parse(),Date.UTC()
  • 【四】Date實例方法get系列,set系列,to系列,valueOf()

Date()函數用法和構造函數用法html

  1. Date()函數用法,Date對象能夠做爲普通函數直接調用,返回一個表明當前時間的字符串,直接調用Date,不管是否有參數,返回的都是當前時間的字符串。

`java

Date()  // 輸出 Fri Oct 12 2018 16:41:20 GMT+0800
Date(2018, 10, 12)  // 輸出 Fri Oct 12 2018 16:41:20 GMT+0800
複製代碼

` 2. Date()構造函數用法,使用new關鍵字實例化Date,返回一個Date對象的實例,若是不設置參數,返回的就是當前時間對象的實例:函數

`spa

var curDate = new Date();
console.log(curDate) // 當前時間字符串 Fri Oct 12 2018 16:57:10 GMT+0800
curDate.getFullYear() // 當前時間的年
curDate.getMonth()  // 當前時間的月
curDate.getDate() //  當前時間的天
複製代碼

`實例化Date時接收參數,而所謂接收參數,通俗的講就是,給實例設置一個初始化的時間,不在取當前時間,實例化Date的參數能夠接收多種格式,第一種毫秒格式的整數參數:prototype

`code

var msDate = new Date(1539302400000)    // Date 2018-10-12T00:00:00.000Z
複製代碼

` 第二種是日期字符串,而日期字符串格式,只要能夠被Date.parse()解析的,就能夠做爲參數應用htm

`對象

new Date('2018/10/12')    // Date 2018-10-12T00:00:00.000Z
new Date('2018-10-12')    // Date 2018-10-12T00:00:00.000Z
new Date('10/12/2018')    // Date 2018-10-12T00:00:00.000Z
複製代碼

` 第三種是年,月,日,時,分,秒的整數參數ip

`

var setMyDate = new Date(2018, 10, 12, 17, 17, 30);
setMyDate.getFullYear(); // 輸出 2018
setMyDate.getMonth(); //輸出 10
setMyDate.getDate(); // 輸出 12
// ... 依次類推輸出設置的時間
複製代碼

` 對於第三種年月日時分秒整數參數設置時,必須設置年月兩個參數,其餘參數可選擇性設置,由於若是隻設置一個參數,就會被看成毫秒式格式

`

new Date(2018)    //設置一個參數 Thu Jan 01 1970 08:00:02 GMT+0800 (CST)
new Date(2018, 10)  //設置兩個參數 Date 2018-10-22T00:00:00.000Z
複製代碼

第三種年月日時分秒整數參數設置,還能夠設置爲負數,負數表示從設置的時間日減去相應的時間

new Date(2018, -1)  // Sat Dec 01 2017 00:00:00 GMT+0800 (CST)
new Date(2018, 0, -1)   // Sun Dec 30 2017 00:00:00 GMT+0800 (CST)
複製代碼

`

Date實例各個參數的取值範圍以下:

  • 年:使用四位數年份,好比2000。若是寫成兩位數或個位數,則加上1900,即10表明1910年。若是是負數,表示公元前。
  • 月:0表示一月,依次類推,11表示12月。注意,月份是從0開始
  • 日:1~31。
  • 小時:0~23。
  • 分鐘:0~59。
  • 秒:0~59
  • 毫秒:0~999

Date日期運算

Date的日期運算主要應用+和-運算符,+運算符就是把兩個Date實例的時間字符串拼接: `

var msDate = new Date(2018, 10);
var myDate = new Date(2015, 10, 12);
console.log(msDate + myDate)    // Thu Nov 01 2018 00:00:00 GMT+0800Thu Nov 12 2015 00:00:00 GMT+0800
複製代碼

-運算符會更具實用性,-運算符會把兩個實例對象轉換爲它們的毫秒數進行相減,得出兩個實例間隔的毫秒數:

var msDate = new Date(2018, 10);
var myDate = new Date(2015, 10, 12);
console.log(msDate - myDate)    // 93744000000
複製代碼

`

Date靜態方法Date.now(),Date.parse(),Date.UTC()

Date.now()方法返回當前時間距離(1970年1月1日 00:00:00 UTC)的毫秒數: `

Date.now()  // 1539338654125
複製代碼

`

Date.parse()方法用來解析日期字符串,返回該時間距離(1970年1月1日 00:00:00 UTC)的毫秒數,若是Date.parse()失敗,則返回NaN: `

Date.parse('2012-01-01')    // 1325376000000
Date.parse('2015/01/01')    // 1420041600000
Date.parse('***')   // NaN
複製代碼

`

Date.UTC方法接受年、月、日等變量做爲參數,返回該時間距離時間零點(1970年1月1日 00:00:00 UTC)的毫秒數。

`

Date.UTC(2018, 10, 12, 18, 15, 30)  // 1542046530000
複製代碼

`

該方法的參數用法與Date構造函數徹底一致,好比月從0開始計算,日期從1開始計算。區別在於Date.UTC方法的參數,會被解釋爲 UTC 時間(世界標準時間),Date構造函數的參數會被解釋爲當前時區的時間。

Date實例方法get系列,set系列,to系列,valueOf()

Date的實例對象,有幾十個本身的方法,除了valueOf和toString,能夠分爲如下三類。

  • to類:從Date對象返回一個字符串,表示指定的時間。
  • get類:獲取Date對象的日期和時間。
  • set類:設置Date對象的日期和時間。

Date.prototype.valueOf(),value方法返回實例對象距離時間零點(1970年1月1日00:00:00 UTC)對應的毫秒數,該方法等同於getTime方法。

`

var myDate = new Date()
    myDate.valueOf();   // 1541001600000
    myDate.getTime();   // 1541001600000
複製代碼

` (1)to系列方法

  • Date.prototype.toString() 方法返回一個完整的日期字符串,和實例對象輸出同樣;
  • Date.prototype.toUTCString() 方法返回對應的 UTC 時間,也就是比北京時間晚8個小時;
  • Date.prototype.toISOString()方法返回對應時間的 ISO8601 寫法;
  • Date.prototype.toJSON()方法返回一個符合 JSON 格式的 ISO 日期字符串,與toISOString方法的返回結果徹底相同;
  • Date.prototype.toDateString()方法返回日期字符串(不含小時、分和秒);
  • Date.prototype.toTimeString()toTimeString方法返回時間字符串(不含年月日);
  • Date.prototype.toLocaleString()方法返回完整的本地時間;
  • Date.prototype.toLocaleDateString()方法返回本地日期(不含小時、分和秒);
  • Date.prototype.toLocaleTimeString()方法返回本地時間(不含年月日);

(2)get系列方法

get系列,是獲取Date實例上的時間,new Date()已經初始化了一個時間。

  • getTime():返回實例距離1970年1月1日00:00:00的毫秒數,等同於valueOf方法。
  • getDate():返回實例對象對應每月的幾號(從1開始)。
  • getDay():返回星期幾,星期日爲0,星期一爲1,以此類推。
  • getYear():返回距離1900的年數。
  • getFullYear():返回四位的年份。
  • getMonth():返回月份(0表示1月,11表示12月)。
  • getHours():返回小時(0-23)。
  • getMilliseconds():返回毫秒(0-999)。
  • getMinutes():返回分鐘(0-59)。
  • getSeconds():返回秒(0-59)。
  • getTimezoneOffset():返回當前時間與 UTC 的時區差別,以分鐘表示,返回結果考慮到了夏令時因素

(3)set系列方法

set系列,是對實例對象上的時間從新設置,也能夠理解成修改,由於Date構造函數建立時,就已經初始化了一個時間,給new Date()傳入參數就是設置時間:

  • setDate():設置實例對象對應的每月的幾號(1-31),返回改變後毫秒時間戳。
  • setYear(): 設置距離1900年的年數。
  • setFullYear():設置四位年份。
  • setHours():設置小時(0-23)。
  • setMilliseconds():設置毫秒(0-999)。
  • setMinutes():設置分鐘(0-59)。
  • setMonth():設置月份(0-11)。
  • setSeconds():設置秒(0-59)。
  • setTime():設置毫秒時間戳。

get系列和set系列還有對應的UTC世界標準時間的get方法,這裏將不在一一列舉了,你們也能夠去w3c官網查看;

結語

Date日期對象在看咱們的平常開發中使用仍是比較多的,最典型的就是你們都常常用的日曆控件,還有一些取本地時間來作的倒計時等。在下一章節的分享中,將分享一個日曆控件的和倒計時的demo,喜歡的朋友空調關注下,以示鼓勵,謝謝。

本次分享參考了網道WangDoc.com, w3c;

相關文章
相關標籤/搜索