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