当前位置: 首页 > 面试题库 >

相对于相对时间的Javascript时间戳(例如2秒前,一周前等),最佳方法?

江文斌
2023-03-14
问题内容

我正在寻找一个不错的JS代码片段,以将时间戳记(例如,来自Twitter API)转换为用户友好的相对时间(例如2秒前,一周前等)。

有人愿意分享一些他们喜欢的方法(最好不使用插件)吗?


问题答案:

好吧,如果您不太担心准确性,那很容易。平凡的方法有什么问题?

function timeDifference(current, previous) {

    var msPerMinute = 60 * 1000;
    var msPerHour = msPerMinute * 60;
    var msPerDay = msPerHour * 24;
    var msPerMonth = msPerDay * 30;
    var msPerYear = msPerDay * 365;

    var elapsed = current - previous;

    if (elapsed < msPerMinute) {
         return Math.round(elapsed/1000) + ' seconds ago';   
    }

    else if (elapsed < msPerHour) {
         return Math.round(elapsed/msPerMinute) + ' minutes ago';   
    }

    else if (elapsed < msPerDay ) {
         return Math.round(elapsed/msPerHour ) + ' hours ago';   
    }

    else if (elapsed < msPerMonth) {
        return 'approximately ' + Math.round(elapsed/msPerDay) + ' days ago';   
    }

    else if (elapsed < msPerYear) {
        return 'approximately ' + Math.round(elapsed/msPerMonth) + ' months ago';   
    }

    else {
        return 'approximately ' + Math.round(elapsed/msPerYear ) + ' years ago';   
    }
}

如果这会让您感到困扰1 day1 days则可能需要对其进行调整以更好地处理奇异值(例如而不是)。



 类似资料:
  • 我试图使用scala和以下代码从spark流数据帧中提取值: 我想知道是否有一个等效的时间戳类型化get方法?让我更加困惑的是,在我为结构化流定义的SQL类型和通过flatMap函数访问变量的实际类型之间似乎存在某种隐藏映射(至少对我来说是隐藏的)。我看了看医生,事实确实如此。根据文件: 返回位置i处的值。如果值为null,则返回null。以下是Spark SQL类型和返回类型之间的映射: 布尔型

  • 问题内容: 我基本上是想将Unix时间戳(time()函数)转换为与过去和将来的日期都兼容的相对日期/时间。因此输出可能是: 2个星期前 1小时60分钟前 15分钟54秒前 10分钟15秒后 首先,我尝试编写此代码,但是做了一个无法维护的巨大功能,然后我在互联网上搜索了几个小时,但我所能找到的只是脚本仅产生一部分时间(例如:“ 1小时前”纪要)。 您是否已经有执行此操作的脚本? 问题答案: 此功能

  • 本文向大家介绍php返回相对时间(如:20分钟前,3天前)的方法,包括了php返回相对时间(如:20分钟前,3天前)的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php返回相对时间(如:20分钟前,3天前)的方法。分享给大家供大家参考。具体如下: 希望本文所述对大家的php程序设计有所帮助。

  • 问题内容: 想要改善这篇文章吗? 提供此问题的详细答案,包括引文和为什么答案正确的解释。答案不够详细的答案可能会被编辑或删除。 我想转换格式的时间戳记,并把它变成像用PHP。 我找到了一个有用的脚本来执行此操作,但是我认为它正在寻找一种不同的格式用作时间变量。我要修改以使用此格式的脚本是: 我认为在脚本的前几行中,脚本正在尝试执行以下操作(不同的日期格式数学): 我如何将时间戳转换为该(unix?

  • 问题内容: 我在Postgres的平等问题上遇到了麻烦。 平等的工作方式与我期望的一样,如果在对时区进行归一化之后,如果时间相同,那么它应该为真: 但是,似乎不适用于以下情况: 但是,不平等在我期望他们如何实现的过程中起作用: 我有什么误会吗?如何以与平等相同的方式处理时区来评估平等? 问题答案: 以下是两种评估平等的方法: 在 第一个 将它添加到一个。该 第二 通过使用构建体。 但不要使用。曾经

  • 我有一个处理实时事件的系统。用户可以在指定的时间间隔插入自定义事件。实时引擎使用java.time.Duration来计时事件。通过jsp向用户展示一个菜单,该菜单以(全)秒为单位指定Duration。事件列表被序列化为Long值。所以我有三种使用相同值的方法。我创建了一个值对象,在每次访问时执行转换,这样我就不必将转换分散在整个代码中。我想知道是否有更好的方法来完成这个场景。这是我的VO。