📜  javascript time ago 函数 - Javascript (1)

📅  最后修改于: 2023-12-03 15:31:38.726000             🧑  作者: Mango

JavaScript Time Ago 函数

JavaScript Time Ago 函数是一种实用的 JavaScript 函数,可以将时间戳转换为易于理解的时间差格式。

原理

该函数接收一个时间戳参数,然后计算当前时间与该时间戳之间的时间差。根据时间差的不同,会返回不同的时间差格式(如 1 分钟前、1 小时前、1 天前等)。

代码示例

下面是一个基本的 JavaScript Time Ago 函数示例:

function timeAgo(timeStamp) {
  const SECOND = 1000;
  const MINUTE = 60 * SECOND;
  const HOUR = 60 * MINUTE;
  const DAY = 24 * HOUR;
  const WEEK = 7 * DAY;
  const MONTH = 30 * DAY;
  const YEAR = 365 * DAY;

  const elapsed = Date.now() - timeStamp;

  if (elapsed < MINUTE) {
    return Math.round(elapsed / SECOND) + ' 秒前';
  } else if (elapsed < HOUR) {
    return Math.round(elapsed / MINUTE) + ' 分钟前';
  } else if (elapsed < DAY) {
    return Math.round(elapsed / HOUR) + ' 小时前';
  } else if (elapsed < WEEK) {
    return Math.round(elapsed / DAY) + ' 天前';
  } else if (elapsed < MONTH) {
    return Math.round(elapsed / WEEK) + ' 周前';
  } else if (elapsed < YEAR) {
    return Math.round(elapsed / MONTH) + ' 个月前';
  } else {
    return Math.round(elapsed / YEAR) + ' 年前';
  }
}
示例用法
const timeStamp = 1597268382778;
const timeAgoString = timeAgo(timeStamp);
console.log(timeAgoString); // 输出结果:2 天前
注意事项
  • 时间戳参数必须是以毫秒为单位的整数。
  • 该函数只适用于计算过去时间与当前时间的差值,不适用于计算未来时间。
  • 该函数的时间差格式可以根据需求自行进行修改。