/

如何在JavaScript中格式化日期

如何在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.getDate() //22
1
date.getDay() //0 (0表示星期日,1表示星期一..)
1
date.getFullYear() //2018
1
date.getMonth() //6 (從0開始)
1
date.getHours() //7
1
date.getMinutes() //22
1
date.getSeconds() //13
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”]