?在console控制臺直接輸出new Date(),是這樣:
Fri May 10 2024 23:36:06 GMT+0800 (中國標準時間)
輸出new Date().toLocaleString(),是這樣:
'2024/5/10 23:36:06'
輸出new Date().toISOString(),是這樣:
'2024-05-10T15:36:06.161Z'
輸出new Date().toGMTString(),是這樣:
'Fri, 10 May 2024 15:36:06 GMT'
輸出new Date().toUTCString(),是這樣:
'Fri, 10 May 2024 15:41:52 GMT'
ISO,GMT,UTC,都是0時區,只有Locale是當地時區,即服務器所在時區(我在東八區)。
但是LocaleString拿到的卻是字符串2024/5/10 23:36:06。
所以利用getMonth,getDate,但由于個位是一位數字,所以需要在前面補充0。優雅寫法如下:
//補充:date.getMonth() 0是1月,1是2月,以此類推。
function formatDateTime(date) {const year = date.getFullYear();const month = ('0' + (date.getMonth() + 1)).slice(-2);const day = ('0' + date.getDate()).slice(-2);const hours = ('0' + date.getHours()).slice(-2);const minutes = ('0' + date.getMinutes()).slice(-2);const seconds = ('0' + date.getSeconds()).slice(-2);return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
}const date = new Date();
const formatDate = formatDateTime(date);
2、使用第三方庫
也可以使用第三方庫來格式化日期字符串,如 moment.js:
const moment = require('moment');const date = new Date();
const formatDateTime = moment(date).format('YYYY-MM-DD HH:mm:ss');
3、使用 ES6 的模板字符串法,即 ` 這個符號(鍵盤上數字1左邊的符號):
const date = new Date();
const formatDateTime = `${date.getFullYear()}-${('0' + (date.getMonth() + 1)).slice(-2)}-${('0' + date.getDate()).slice(-2)} ${('0' + date.getHours()).slice(-2)}:${('0' + date.getMinutes()).slice(-2)}:${('0' + date.getSeconds()).slice(-2)}`;
這個符號,通常還會見到一種寫法:雖然這樣寫會出現錯誤格式,但這只是更直觀表達這種符號的寫法,任何字符都可以直接寫在 ` 這個符號里。就等同于是字符串
const formateDate = `${date.getFullYear()}-0${date.getMonth() + 1}-0${date.getDate}`