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

yizhihongxing

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

方法一:利用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日

相关文章

  • JavaScript中从setTimeout与setInterval到AJAX异步

    JavaScript中从setTimeout与setInterval到AJAX异步 setTimeout与setInterval setTimeout setTimeout是JavaScript中的一个定时器函数,它接受2个参数:一个函数和一个时间(单位为毫秒)。当函数被发送到浏览器的事件队列时,它会在指定的时间之后执行。 setTimeout(functi…

    JavaScript 2023年6月11日
    00
  • js简单实现用户注册信息的校验代码

    下面就是关于js简单实现用户注册信息的校验代码的完整攻略。 一、需求分析 在开发一个注册功能的网站时,我们需要对用户输入的注册信息进行校验,包括以下内容: 用户名:长度在6-20之间,只能包含字母、数字、下划线。 密码:长度在6-20之间,包含至少一个大写字母、至少一个小写字母和至少一个数字。 确认密码:需要与密码一致。 邮箱:需要符合邮箱格式。 手机号码:…

    JavaScript 2023年6月10日
    00
  • js核心基础之构造函数constructor用法实例分析

    首先,构造函数(Constructor)是JavaScript中的一个特殊函数,可以用来创建可重复使用的对象。构造函数可以用于创建特定类型的对象,比如创建一个人(Person)类型的对象。接下来我会详细讲解构造函数constructor用法实例分析。 构造函数的定义和基本使用方法 构造函数是一个用于创建对象的特殊函数,它可以使用 new 关键字来创建对象,同…

    JavaScript 2023年5月28日
    00
  • JavaScript实现烟花特效(面向对象)

    当下,烟花特效是web前端常见的动画效果之一,本攻略将详细介绍如何通过JavaScript编写实现烟花特效。 步骤一:创建HTML文件 在开发本特效之前,首先需要建立一个HTML文件用于展示页面内容。以下是一个基本的HTML模板,用户可以根据需要添加和修改其他元素: <!DOCTYPE html> <html> <head&gt…

    JavaScript 2023年6月10日
    00
  • UTF-8编码

    UTF-8是一种对Unicode进行可变长度编码的字符编码方案。下面是UTF-8编码的详细攻略: 什么是UTF-8编码? UTF-8编码是一种通用的字符编码方案,它可以表示Unicode标准中的任何字符,包括了世界上几乎所有的字符。 UTF-8编码原理 UTF-8使用一至四个字节来表示一个字符,根据字符的不同可能会采用不同长度的字节表示。 对于单字节字符,U…

    JavaScript 2023年5月19日
    00
  • JS动态给对象添加属性和值的实现方法

    下面是关于“JS动态给对象添加属性和值的实现方法”的完整攻略: 方式一:使用点运算符添加属性 使用点运算符添加属性非常简单,只需要在对象后加上”.”,紧接着加上新增的属性名,再赋予一个值即可。 示例一: let person = { name: ‘张三’, age: 25 }; person.gender = ‘男’; console.log(person)…

    JavaScript 2023年5月27日
    00
  • JavaScript中string转换成number介绍

    当需要在JavaScript中使用数字时,需要将字符串转换为数字。在JavaScript中有三种方式可以将字符串转换为数字类型:Number(), parseInt() 和 parseFloat()。下面对这三种方式进行详细介绍。 Number()方法: Number()方法可以把任何JavaScript对象转换为数字。如果对象是一个字符串,字符串只包含数字…

    JavaScript 2023年5月28日
    00
  • JavaScript数组的定义及数字操作技巧

    关于JavaScript数组的定义及数字操作技巧,以下是一份完整攻略: 定义JavaScript数组 1. 直接定义 使用[]定义一个空数组,或者使用[element1, element2, …]定义一个带有初始元素的数组。 示例:定义一个空数组和一个包含元素的数组 let arr1 = []; let arr2 = [‘apple’, ‘banana’…

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