本文主要讲解JavaScript中的时间格式化和时间戳转换函数,主要包含以下内容:
在JavaScript中,时间可以表示成一个Date对象,它可以通过以下方式创建:
//创建一个表示当前时间的Date对象
var now = new Date();
//创建一个指定时间的Date对象,参数依次为年、月、日、小时、分钟、秒、毫秒
var date = new Date(2022, 2, 25, 10, 30, 0, 0);
JavaScript中的时间是基于1970年1月1日0时0分0秒的时间戳(Timestamp)表示的,单位是毫秒,可以通过以下方式获取:
var timestamp = now.getTime();
为了方便把时间以某种形式显示给用户,我们需要对时间进行格式化。一个常见的时间格式化函数的基本思路如下:
常见的格式化形式包括:
除了格式化函数外,我们还需要将时间戳转换成指定的时间格式。一个常见的时间戳转换函数的基本思路如下:
moment.js是一个优秀的JavaScript时间处理库,它提供了非常方便的时间格式化和转换方法。我们可以使用它来实现常见的时间格式化和转换操作。
具体实现如下:
//引入moment.js库
<script src="https://unpkg.com/moment"></script>
//格式化时间
var now = moment().format('YYYY-MM-DD HH:mm:ss.SSS');
//时间戳转换
var timestamp = 1645666200000;
var date = moment(timestamp).format('YYYY-MM-DD HH:mm:ss.SSS');
除了moment.js库外,我们还可以自行实现时间格式化和转换函数。以下是一个基于正则表达式的自定义时间格式化和转换函数的实现示例:
//时间格式化
function formatDate(timestamp, format){
var date = new Date(timestamp);
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDate();
var hour = date.getHours();
var minute = date.getMinutes();
var second = date.getSeconds();
var millisecond = date.getMilliseconds();
var str = format.replace(/YYYY/, year)
.replace(/MM/, (month > 9 ? month : "0" + month))
.replace(/DD/, (day > 9 ? day : "0" + day))
.replace(/HH/, (hour > 9 ? hour : "0" + hour))
.replace(/mm/, (minute > 9 ? minute : "0" + minute))
.replace(/SSS/, (millisecond > 99 ? millisecond : millisecond > 9 ? "0" + millisecond : "00" + millisecond))
.replace(/ss/, (second > 9 ? second : "0" + second));
return str;
}
//时间戳转换
function timestampToDateStr(timestamp){
return formatDate(timestamp, "YYYY-MM-DD HH:mm:ss.SSS");
}
//示例
var timestamp = 1645666200000;
var date = timestampToDateStr(timestamp);
以上就是JavaScript中时间格式化和时间戳转换函数的详细讲解和示例。
本文链接:http://task.lmcjl.com/news/10632.html