js实现时间显示几天前、几小时前或者几分钟前的方法集锦

实现时间显示几天前、几小时前或者几分钟前的方法,在前端开发中是比较常见的需求之一,下面我们来讲解一下相关的实现技巧和方法。

方法一:利用Moment.js库实现

Moment.js是一个便捷的日期处理类库,可以帮助我们轻松地完成日期和时间的格式化、解析和计算等操作。在基于Moment.js库实现的时间显示几天前、几小时前或者几分钟前的方法中,我们可以使用其巨大的便利。实现如下:

<script src="//cdn.bootcss.com/moment.js/2.18.1/moment.min.js"></script>
<script src="//cdn.bootcss.com/moment.js/2.18.1/locale/zh-cn.js"></script>
<script>
    function timeago(time) {
        return moment(time).locale('zh-cn').fromNow();
    }
</script>

上述代码依赖Moment.js库,需要先在HTML页面中引入moment.min.js和locale/zh-cn.js文件,然后编写timeago方法,将传入的时间参数作为moment库的参数,然后将locale设置为“zh-cn”,最后调用fromNow方法即可。如果传入的是当前时间,则该方法将返回“刚刚”;如果时间紧挨着当前时间,该方法返回“几秒前”;若时间早于当前时间,该方法返回“几分钟前”、“几小时前”、“几天前”等。

方法二:手动计算时间差

如果不想依赖Moment.js库,我们也可以手动计算时间差,实现“几天前”、“几小时前”、“几分钟前”的效果。具体实现如下:

function timeago(time) {
    var timestamp = Date.parse(time.replace(/-/gi, '/')) / 1000; // 兼容iOS Safari时间格式

    var mistiming = Math.round((new Date().getTime() / 1000 - timestamp) / 60);
    if (mistiming < 60) {
        return mistiming + '分钟前';
    }
    var timing = Math.round(mistiming / 60);
    if (timing < 24) {
        return timing + '小时前';
    }
    var timingday = Math.round(timing / 24);
    if (timingday < 30) {
        return timingday + '天前';
    } else if (timingday > 30 && timingday < 365) {
        return Math.round(timingday / 30) + '个月前';
    } else {
        return Math.round(timingday / 365) + '年前';
    }
}

上述代码中,我们先将传入的时间字符串转成时间戳,再获取当前时间戳,然后计算两者之间的时间差(单位为分钟)。接着,根据时间差的大小,返回“几分钟前”、“几小时前”和“几天前”等时间字符串。若时间差超过一个月,则返回“几个月前”;若时间差超过一年,则返回“几年前”。

以上就是实现时间显示几天前、几小时前或者几分钟前的方法的两种不同实现。您可以举一些具体的实例进行测试和调试。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js实现时间显示几天前、几小时前或者几分钟前的方法集锦 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • 微信页面弹出键盘后iframe内容变空白的解决方案

    针对这个问题,我们可以从以下几个方向进行排查: 1. 检查是否存在遮罩问题 可能是弹出键盘时,遮挡了iframe中的内容导致内容变空白。此时,我们可以通过设置索引(z-index)达到弹出层在iframe内容上方的效果,比如将遮罩层的索引设为最大值: .mask { position: fixed; top: 0; left: 0; width: 100%;…

    JavaScript 2023年6月11日
    00
  • JavaScript 中的无穷数(Infinity)详解

    那么首先需要明确的是,在 JavaScript 中,Infinity 是指表示正无穷大的数字常量。它比任何数都大,包括自身。同时,JavaScript 也提供了一个负无穷大的常量,即-Infinity。下面,我将会详细讲解 Infinity 在 JavaScript 中的应用及示例。 什么是 Infinity? Infinity 是一个 JavaScript…

    JavaScript 2023年5月27日
    00
  • 通过javascript进行UTF-8编码的实现方法

    下面是详细的攻略,你可以按照以下步骤进行UTF-8编码的实现。 第一步:将字符串转化为Unicode码位 我们首先需要将字符串转化为Unicode码位,这是为了确保所有的字符都能够被正确的编码,无论是ASCII字符还是非ASCII字符。在Javascript中,可以使用charCodeAt()方法来获取字符串中每个字符的Unicode码位,然后将它们存储在一…

    JavaScript 2023年5月20日
    00
  • 原生js 实现表单验证功能

    下面是关于“原生js实现表单验证功能”的完整攻略: 目录: 需求分析和实现思路 HTML结构布局 JS代码实现 示例说明 需求分析和实现思路 表单验证功能是Web开发中必不可少的功能之一,实现表单验证的方法有很多种,包括使用第三方库(如jQuery、Bootstrap等),也可以使用原生的JS来实现。下面是一个原生JS实现表单验证的基本思路: 获取表单元素。…

    JavaScript 2023年6月10日
    00
  • express异步函数异常捕获示例详解

    下面将详细讲解“express异步函数异常捕获示例详解”的完整攻略。 什么是异步函数异常捕获 当我们在使用异步函数的时候,如果出现异常错误,如果不进行捕获错误会导致整个应用程序宕机,这会对我们的应用程序和用户造成不便和不良影响。所以很有必要对异步函数的异常进行捕获,防止代码运行出现异常。 express应用中的异常捕获 在express中,我们可以使用try…

    JavaScript 2023年5月28日
    00
  • 深入理解JavaScript编程中的原型概念

    深入理解JavaScript编程中的原型概念 JavaScript 中的原型是 JavaScript 编程中的核心概念,对于理解 JavaScript 中的对象和继承非常重要。 原型总览 在 JavaScript 中,每个对象都有一个原型。当你访问一个实例属性时,JavaScript 首先查找实例对象是否具有该属性,如果没有,则沿着原型链向上查找该属性。原型…

    JavaScript 2023年6月10日
    00
  • JS删除数组里的某个元素方法

    当需要从JavaScript数组中删除某个元素时,可以使用多种不同的方法。下面是其中的几种可能的方法: 使用splice()方法 splice()方法可以用于从数组中删除一个或多个元素,这是一个十分通用的方法。splice()方法可以接受三个参数: 1.起始位置(从哪一个索引位置开始删除)。 2.要删除的元素数(要删除多少个元素)。 3.要添加的元素(可选的…

    JavaScript 2023年5月27日
    00
  • JavaScript实现进度条效果

    请看下面详细讲解“JavaScript实现进度条效果”的完整攻略。 1. 前置知识 在开始实现进度条效果之前,需要具备以下知识: HTML和CSS的基础知识 JavaScript的基本语法和DOM操作 2. 实现思路 实现进度条效果可以采用如下思路: 创建一个div元素,作为进度条的显示区域。 在CSS中设置进度条的基本样式,包括进度条的颜色、高度、圆角等。…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部