关键词

JS的时间格式化和时间戳转换函数示例详解

本文主要讲解JavaScript中的时间格式化和时间戳转换函数,主要包含以下内容:

  1. JavaScript中时间的基本概念和表示方法
  2. 时间格式化函数的基本思路和常见的格式化形式
  3. 时间戳转换函数的基本思路和实现方法
  4. 基于moment.js的时间格式化和转换示例
  5. 自定义时间格式化和转换函数的实现示例

1. 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();

2. 时间格式化函数的基本思路和常见的格式化形式

为了方便把时间以某种形式显示给用户,我们需要对时间进行格式化。一个常见的时间格式化函数的基本思路如下:

  1. 首先获取时间戳(即Date对象的getTime()方法返回值);
  2. 根据指定的格式字符串,将时间戳转换为指定格式的字符串。

常见的格式化形式包括:

  • 年月日(如:2022-02-25)
  • 时分秒(如:10:30:00)
  • 年月日时分秒(如:2022-02-25 10:30:00)
  • 年月日时分秒毫秒(如:2022-02-25 10:30:00.000)

3. 时间戳转换函数的基本思路和实现方法

除了格式化函数外,我们还需要将时间戳转换成指定的时间格式。一个常见的时间戳转换函数的基本思路如下:

  1. 将时间戳转换为Date对象;
  2. 根据指定的格式字符串,将Date对象转换为对应的格式字符串。

4. 基于moment.js的时间格式化和转换示例

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');

5. 自定义时间格式化和转换函数的实现示例

除了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

展开阅读全文