您的位置:

微信小程序时间戳转时间格式详解

一、时间戳的概念

时间戳,指格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。JavaScript中的时间是以毫秒为单位的,所以需要将秒数乘以1000来转换成JavaScript中的毫秒数。

二、时间戳转时间格式

在微信小程序中,时间戳可以通过内置的方法进行转换。

/**
 * 时间戳转换成时间格式
 * 
 * @param {number} timestamp 时间戳
 * @param {string} format    时间格式(可选,默认为yyyy-MM-dd hh:mm:ss)
 * @returns {string}         转换后的时间
 */
function formatTime(timestamp, format = 'yyyy-MM-dd hh:mm:ss') {
  const date = new Date(timestamp * 1000);
  const year = date.getFullYear();
  const month = addZero(date.getMonth() + 1);
  const day = addZero(date.getDate());
  const hour = addZero(date.getHours());
  const minute = addZero(date.getMinutes());
  const second = addZero(date.getSeconds());

  return format.replace('yyyy', year)
    .replace('MM', month)
    .replace('dd', day)
    .replace('hh', hour)
    .replace('mm', minute)
    .replace('ss', second);
}

/**
 * 在数字前补0
 *
 * @param {number} num 数字
 * @returns {string}   补0后的字符串
 */
function addZero(num) {
  return num < 10 ? '0' + num : num;
}

三、时间格式化

上述方法只是将时间戳转换成了指定的时间格式,如果需要格式化时间,可以使用date-fns这个JavaScript库,它提供了非常丰富的API供我们使用。

四、示例代码


{{ formatTime(timestamp) }}
  
// js代码
import { format } from 'date-fns';

Page({
  data: {
    timestamp: 1605963200,
  },

  formatTime(timestamp, format = 'yyyy-MM-dd hh:mm:ss') {
    const date = new Date(timestamp * 1000);
    return format(date);
  },
});

五、小结

本文详细介绍了微信小程序中时间戳转时间格式的方法,根据需要不同,可以选择使用内置的方法或借助第三方库来进行时间格式化。