首页 > web前端 > js教程 > 正文

如何在 JavaScript 中实现 Stack Exchange 的时间显示格式?

Patricia Arquette
发布: 2024-11-08 09:03:02
原创
285 人浏览过

How to Implement Stack Exchange's Time Display Formatting in JavaScript?

格式化时间:复制 Stack Exchange 的时间显示

显示自给定时间点以来经过的时间的需要在 Web 应用程序中很常见。许多流行的网站(例如 Stack Exchange)都采用简洁且信息丰富的格式来显示此后的时间,例如“4 分钟前”或“1 年前”。在 JavaScript 中实现类似的格式化方法可以让开发人员提供一种用户友好且直观的方式来引用过去的事件。

为了实现这一点,我们可以利用 JavaScript 的内置 Date 对象和简单的计算来确定已过去的事件两个日期之间的时间。

实现:

function timeSince(date) {
  var seconds = Math.floor((new Date() - date) / 1000);

  var interval = seconds / 31536000;

  if (interval > 1) {
    return Math.floor(interval) + " years";
  }
  interval = seconds / 2592000;
  if (interval > 1) {
    return Math.floor(interval) + " months";
  }
  interval = seconds / 86400;
  if (interval > 1) {
    return Math.floor(interval) + " days";
  }
  interval = seconds / 3600;
  if (interval > 1) {
    return Math.floor(interval) + " hours";
  }
  interval = seconds / 60;
  if (interval > 1) {
    return Math.floor(interval) + " minutes";
  }
  return Math.floor(seconds) + " seconds";
}
登录后复制

用法:

var aDay = 24 * 60 * 60 * 1000;
console.log(timeSince(new Date(Date.now() - aDay))); // "1 day ago"
console.log(timeSince(new Date(Date.now() - aDay * 2))); // "2 days ago"
登录后复制

此函数计算差异当前时间和给定日期之间的值,然后根据经过的时间(范围从秒到年)将其格式化为字符串。该函数通过将经过的时间除以不同的间隔并将结果四舍五入到最接近的整数来运行。

通过实现此方法,开发人员可以轻松地以一致且用户友好的格式显示经过的时间,从而增强用户体验他们的网络应用程序。

以上是如何在 JavaScript 中实现 Stack Exchange 的时间显示格式?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板