用于人类友好的相对日期格式的Javascript库[关闭]

2023-12-12

我想以人类友好的格式显示一些相对于当前日期的日期。

人类友好的相对日期的示例:

  • 10 秒前
  • 20 分钟后
  • 1天前
  • 5 周前
  • 2个月前

基本上忠实地保留了最高数量级(并且优选地,仅在通过其中 2 个单位时才上调单位 - 5 周而不是 1 个月)。

尽管我可以忍受一个控制较少、约会更友好的图书馆,例如:

  • 昨天
  • tomorrow
  • 上星期
  • 几分钟前
  • 几个小时后

有这方面的流行库吗?


自从我写了这个答案以来,一个众所周知的可用库是moment.js.


可用的库,但是自己实现它是微不足道的。只需使用一些条件即可。

Assume date是一个实例化的Date您想要进行比较的时间对象。

// Make a fuzzy time
var delta = Math.round((+new Date - date) / 1000);

var minute = 60,
    hour = minute * 60,
    day = hour * 24,
    week = day * 7;

var fuzzy;

if (delta < 30) {
    fuzzy = 'just then.';
} else if (delta < minute) {
    fuzzy = delta + ' seconds ago.';
} else if (delta < 2 * minute) {
    fuzzy = 'a minute ago.'
} else if (delta < hour) {
    fuzzy = Math.floor(delta / minute) + ' minutes ago.';
} else if (Math.floor(delta / hour) == 1) {
    fuzzy = '1 hour ago.'
} else if (delta < day) {
    fuzzy = Math.floor(delta / hour) + ' hours ago.';
} else if (delta < day * 2) {
    fuzzy = 'yesterday';
}

您需要对此进行调整以处理未来的日期。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用于人类友好的相对日期格式的Javascript库[关闭] 的相关文章

随机推荐

  • 垂直自动滚动文本视图

    我只是想设置一个简单的 TextView 包裹在 ScrollView 中 它将自动向下滚动显示 TextView 的内容 就像电影显示片尾字幕一样 我不希望用户必须与滚动条交互 屏幕上没有我正在使用的按钮或其他布局 因此制作人员名单填满了
  • 尝试将文件上传到 CKAN 时出错:“无法获取存储上传凭据。上传无法继续”

    当尝试将文件上传到 CKAN 中的数据集时 我在 Web 界面中收到此错误 Failed to get credentials for storage upload Upload cannot proceed 此错误通常是由于 CKAN 的
  • LESS CSS 使用不同的前缀转义整个 CSS 规则?

    我如何避免以下情况 prefix rule prop webkit rule prop moz rule prop o rule prop ms rule prop rule prop 我尝试了很多不同的方法 将其包装在 stuff 将变量
  • 我的 GPU 上的总线程数、块数和网格数。

    For the NVIDIA GEFORCE 940mx GPU Device Query shows it has 3 Multiprocessor and 128 cores for each MP 每个多处理器的线程数 2048 所以
  • 4 点之间的场景套件形状

    鉴于我在上一个问题中采取的路线 ARKit 在 Swift 3 中的平面上的 2 个向量点之间放置一个 SCNPlane 似乎有缺陷 我正在寻找其他选择 我可以在两个节点之间画一条线 然后我可以在这些节点之上创建节点 有效地在一个正方形中
  • 在 C# 中,如何将刷新/重绘消息发送到 WPF 网格或画布?

    如何向 WPF 网格或画布发送刷新消息 换句话说 我注意到在调试模式下 我可以编写代码将一行发送到显示器 然后 如果该行不正确 我可以调整它 但前一行仍然存在 现在 我正在编写的代码根据用户单击的内容将信息发送到显示器 因此 这必定意味着每
  • Instagram API 错误:已达到客户端请求限制

    每当我尝试通过 API 在 Instagram 上关注某人时 无论之前已关注了多少次 我都会收到此错误 meta error type APIError code 400 error message Client request limit
  • 如何从 REST 端点捕获 JsonParseException

    我有一个像这样的端点 POST public Response update MyDocument myDocument 如果请求无效 我的服务器将收到一些很长的日志 如下所示 javax servlet ServletException
  • 继承 - 符号未定义 Objective-C++

    快速问题 这只是我对继承的误解 所以这应该很快就能解决 我正在使用 Objective C 如果问题已经解决了 我会取消这个问题 我找不到它 因此我的帖子 我有以下内容 基础 h文件 ifndef BASE H define BASE H
  • Facebook 注册日期

    如何查找 Facebook 上的注册个人资料的日期 是否可以 我可以通过 API 来做吗 我用谷歌搜索 但找不到解决方案 没有公共途径可以获取此信息 对不起
  • 适配器更新后 ListView 内容被截断

    我的用户界面中有许多垂直堆叠的面板 每个面板都包含一个 ListView 根据用户交互 ListView 中的项目数会更新 我的问题是 如果我增加 ListView 中显示的项目数量 包含面板将不会扩展以显示它们 相反 我的 ListVie
  • Sinon FakeServer 没有请求吗?

    我正在关注SinonJS假服务器教程我正在运行这个简单的代码 var server before function server sinon fakeServer create after function server restore i
  • C# 异常仅在调试时捕获? [复制]

    这个问题在这里已经有答案了 可能的重复 发布模式下的异常处理问题 我怀疑对此有一个非常简单的解释 但我似乎找不到它 当我的 WinForms C 4 0 应用程序将自身加载到 Program cs 文件中时 整个 Main 函数内部都有一个
  • 检测 python 图中的峰值

    我的数据文件在以下链接中共享 我们可以使用以下脚本绘制这些数据 import matplotlib as mpl import numpy as np import matplotlib pyplot as plt import matpl
  • 将数据读入二维数组?

    我正在尝试将数据文件读入二维数组 例如 file dat 1 2 3 a 4 5 6 b 7 8 9 c 我尝试过类似的东西 file open file dat r var var append j for j in i split fo
  • 有某种方法可以处理 ASMX 服务后面的异步/等待吗?

    我有一个 Web 应用程序 提供 JSON 的 WCF REST API 和 ASMX Web 服务 该应用程序已经存在几年了 它基于 ASP NET 2 0 但几年前升级到 NET 4 0 我刚刚升级到 NET 4 5 以便能够使用新的异
  • FFT 需要多少 FLOPS?

    我想知道有多少FLOPS执行快速傅立叶变换 FFT 所以 如果我有一个1的维数数组N浮点数 我想计算这组数字的FFT 有多少FLOPS需要执行吗 我知道这取决于所使用的算法 但是最快的可用算法又如何呢 我还知道 FFT 的缩放比例为N lo
  • 在 R 图形的图例中包含小表格

    我正在绘制按国家 地区分组的公司销售额的点图 所以我的代码是dotchart sales labels company groups country data mydata 我还创建了一个按国家 地区划分的平均销售额表 有什么方法可以将此表
  • laravel 无法为序列化准备路线...。使用闭包

    当我清除 Laravel 5 2 项目中的缓存时 我看到以下错误消息 逻辑异常 无法准备用于序列化的路线 面板 使用闭包 我认为这与路线有关 Route get article slug Front slug 与我的控制器中的特定方法相关联
  • 用于人类友好的相对日期格式的Javascript库[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我想以人类友好的格式显示一些相对于当前日期的日期 人类友好的相对日期的示例 10 秒前 20 分钟后 1天前 5 周前 2个月前 基本上忠实地保留了