在日常的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'