如何在JavaScript中格式化日期
這是一個非常常見的任務:如何在JavaScript中格式化日期?
假設有一個Date物件:
1
| const date = new Date('July 22, 2018 07:22:13');
|
有許多方法可以生成表示該日期的字串。
一些內建的方法可以做到這一點。我列舉它們,並附上一個註釋,顯示出示例輸出:
1 2
| date.toString() // "Sun Jul 22 2018 07:22:13 GMT+0200 (Central European Summer Time)"
|
1
| date.toTimeString() //"07:22:13 GMT+0200 (Central European Summer Time)"
|
1
| date.toUTCString() //"Sun, 22 Jul 2018 05:22:13 GMT"
|
1
| date.toDateString() //"Sun Jul 22 2018"
|
1
| date.toISOString() //"2018-07-22T05:22:13.000Z" (ISO 8601格式)
|
1
| date.toLocaleString() //"22/07/2018, 07:22:13"
|
1
| date.toLocaleTimeString() //"07:22:13"
|
當然你並不限於這些方法 - 你可以使用更底層的方法從日期中獲取值,並構建任何想要的結果:
1
| date.getDay() //0 (0表示星期日,1表示星期一..)
|
1
| date.getFullYear() //2018
|
1
| date.getMonth() //6 (從0開始)
|
1
| date.getMilliseconds() //0 (未指定)
|
1
| date.getTime() //1532236933000
|
1
| date.getTimezoneOffset() //-120 (會根據你所在的地點和檢查的時間而有所變化;在夏季表示中歐時間)。返回以分鐘為單位的時區差異
|
所有這些方法都取決於計算機的當前時區。還有等效的UTC版本的這些方法,它們返回的是UTC值,而不是適應當前時區的值:
1 2 3 4 5 6 7 8
| date.getUTCDate() //22 date.getUTCDay() //0 (0表示星期日,1表示星期一..) date.getUTCFullYear() //2018 date.getUTCMonth() //6 (從0開始) date.getUTCHours() //5 (不是像上面的7一樣) date.getUTCMinutes() //22 date.getUTCSeconds() //13 date.getUTCMilliseconds() //0 (未指定)
|
tags: [“JavaScript”, “formatting dates”, “Date methods”, “UTC”]