格式化时间:复制 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中文网其他相关文章!