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日

相关文章

  • JS前端知识点offset,scroll,client,冒泡,事件对象的应用整理总结

    下面我将详细讲解关于“JS前端知识点offset,scroll,client,冒泡,事件对象的应用整理总结”的攻略以及示例说明。 标题 一、offset、scroll、client的应用说明 1. offset offset是获取元素相对于其offsetParent的位置信息,包括元素的宽高、距离上下左右的距离。使用offsetLeft和offsetTop属…

    JavaScript 2023年6月11日
    00
  • JS实现简单网页倒计时器

    下面我将详细讲解一下如何通过JS实现简单网页倒计时器。 1. 首先,我们需要创建一个HTML页面 在HTML文件中,我们需要定义一个显示倒计时的区域,并为它设置一个id,例如: <div id="countdown"></div> 2. 然后,在JavaScript代码中,我们需要定义倒计时的时间和计时器函数 例如…

    JavaScript 2023年5月27日
    00
  • Javascript开发包大全整理

    Javascript开发包大全整理 如果你是Javascript开发者,那么你一定会使用一些Javascript开发包,它们能够帮助你提高开发效率,降低开发难度。 常用的Javascript开发包 以下为常用的Javascript开发包: jQuery jQuery 是一个Javascript库,可以用于简化Javascript代码编写,提高页面操作效果。 …

    JavaScript 2023年5月18日
    00
  • 求js数组的最大值和最小值的四种方法

    针对“求js数组的最大值和最小值的四种方法”,我为您提供以下攻略: 方法一:使用Math.max()和Math.min() 我们可以使用Math.max()和Math.min()方法来获取一个数组中的最大值和最小值。 代码示例 const numbers = [3, 6, 2, 8, 1]; const max = Math.max(…numbers);…

    JavaScript 2023年5月27日
    00
  • JS中动态创建元素的三种方法总结(推荐)

    下面是关于“JS中动态创建元素的三种方法总结(推荐)”攻略的详细讲解: 简介 在开发中,动态创建元素是不可避免的需求。常见的情况比如使用JS来创建弹窗、显示动态数据、动态添加表单、动态添加图片等等。下面将介绍JS中动态创建元素的三种方法,这些方法都是比较常用和实用的。 方法一:使用document.createElement创建元素 使用document.c…

    JavaScript 2023年6月10日
    00
  • 解析前端面试题2019年小米工程师面试题(附答案)

    这里给出详细讲解“解析前端面试题2019年小米工程师面试题(附答案)”的完整攻略。 前言 本文将对2019年小米工程师面试题进行分析和解答,其中涉及到的知识点基本全面,包括ES6、CSS、HTTP等内容。本文旨在帮助读者更深入理解前端知识,提高应对面试的能力。 攻略 下面按照题目出现顺序,逐个进行解答。 1. 给出题目vue的几种优化 该题目主要考察了对Vu…

    JavaScript 2023年5月19日
    00
  • js正则表达式讲解之index属性(RegExp对象)

    JS正则表达式讲解之index属性(RegExp对象) 什么是正则表达式的index属性? 在JavaScript中,正则表达式是RegExp对象的实例。RegExp对象有一个名为index的属性,用于表示正则表达式匹配的最后一个字符的位置。 例如,对于字符串”hello world”,正则表达式/world/匹配的最后一个字符是d,其在字符串中的位置是8(…

    JavaScript 2023年6月10日
    00
  • 深入理解javascript的执行顺序

    深入理解JavaScript的执行顺序是编写优秀JavaScript代码的基础。JavaScript的执行顺序遵循一定的规则,理解这些规则可以帮助我们理解代码的执行顺序,避免出现错误。 1. 执行栈 在深入了解JavaScript的执行顺序之前,我们需要了解执行栈的概念。执行栈是一个存储函数调用的栈结构,当JavaScript代码执行的时候,函数调用会被依次…

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