在日常的Web開發中,處理日期和時間是不可避免的任務。JavaScript作為Web開發的核心語言之一,提供了一系列的方法來處理時間,尤其是時間戳。本文將介紹獲取時間戳方法和轉換JavaScript時間戳的多種方法,並分享一些實用技巧。

獲取時間戳方法

以下是JavaScript中獲取當前時間戳的五種方法:

使用Date.now()方法

這是獲取當前時間戳最直接的方法。它返回調用時的毫秒表示。

console.log(Date.now()); // 輸出例: 1642471441587

通過Date.parse()轉換時間字符串

該方法解析一個表示日期的字符串,並返回那個日期的時間戳。但需要注意的是,它會將毫秒值轉換為000。

console.log(Date.parse(new Date())); // 輸出例: 1642471535000
console.log(Date.parse("2022/1/18 10:05")); // 輸出例: 1642471500000

valueOf()方法

此方法返回Date對象的原始值,即時間戳。

console.log((new Date()).valueOf()); // 輸出例: 1642471624512

getTime()方法

這個方法返回日期對象自1970年1月1日 00:00:00 UTC以來經過的毫秒數。

console.log(new Date().getTime()); // 輸出例: 1642471711588

轉換為Number類型

通過對Date對象使用Number構造函數,可以得到時間戳。

console.log(Number(new Date())); // 輸出例: 1642471746435

時間戳轉換為日期

獲取了時間戳之後,我們經常需要將其轉換成可讀的日期格式。下面是兩種常見的轉換方法:

轉換為本地時間字符串

利用toLocaleString()方法可以獲得本地時間格式的字符串。

function getLocalTime(n) {
    return new Date(parseInt(n)).toLocaleString().replace(/:\d{1,2}$/, ' ');
}
console.log(getLocalTime(1642471746435)); // 輸出例: '2022/1/18 上午10:09'

格式化為自定義格式

可以通過拼接日期組件來創建自定義格式的日期字符串。

function customFormatDate(timestamp) {
    let date = new Date(timestamp),
        year = date.getFullYear(),
        month = date.getMonth() + 1,
        day = date.getDate(),
        hour = date.getHours(),
        minute = date.getMinutes(),
        second = date.getSeconds();
    return `${year}-${month}-${day} ${hour}:${minute}:${second}`;
}
console.log(customFormatDate(1642471746435)); // 輸出例: '2022-1-18 10:09:06'