js模仿微信朋友圈计算时间显示几天/几小时/几分钟/几秒之前

yizhihongxing

下面是“js模仿微信朋友圈计算时间显示几天/几小时/几分钟/几秒之前”的完整攻略:

步骤一:获取时间戳

在开始计算与当前时间相差多久之前,我们需要获取时间戳。时间戳是指自 1970 年 1 月 1 日 00:00:00 UTC 起至现在的总秒数。

我们可以通过 JavaScript 的 Date 对象获取当前的日期时间,然后将其转换为时间戳。示例代码如下:

let time = new Date().getTime(); // 获取当前时间戳

步骤二:计算时间差

得到了时间戳后,就可以开始计算与当前时间相差多久了。只需要将当前时间戳与被比较时间戳相减即可得到两者之间的时间差。

这里需要注意的是,计算出来的时间差是以毫秒为单位的。我们需要将其转换为相应的天数、小时数、分钟数或秒数。示例代码如下:

let diff = (new Date().getTime() - timestamp) / 1000; // 时间差,单位为秒

let day_diff = Math.floor(diff / 86400); // 计算天数
let hour_diff = Math.floor((diff % 86400) / 3600); // 计算小时数
let minute_diff = Math.floor((diff % 3600) / 60); // 计算分钟数
let second_diff = Math.floor(diff % 60); // 计算秒数

步骤三:根据时间差显示字符串

计算出时间差后,我们需要根据不同的时间差显示不同的时间字符串。例如:1 天前、5 小时前等。

这里我们可以使用 JavaScript 的模板字符串语法,结合上面计算出来的时间差,来生成相应的时间字符串。示例代码如下:

let time_str = '';
if (day_diff > 0) {
  time_str = day_diff + ' 天前';
} else if (hour_diff > 0) {
  time_str = hour_diff + ' 小时前';
} else if (minute_diff > 0) {
  time_str = minute_diff + ' 分钟前';
} else {
  time_str = second_diff + ' 秒前';
}

示例详解

下面通过两个示例来详细讲解一下这个攻略。

示例一

假设当前时间是 2021 年 9 月 15 日 14:30:30,我们需要计算出 2021 年 9 月 12 日 16:25:30 距离当前时间相差多久。

第一步,获取时间戳:

let timestamp = new Date('2021-09-12 16:25:30').getTime(); // 1631454330000

第二步,计算时间差:

let diff = (new Date().getTime() - timestamp) / 1000; // 286200
let day_diff = Math.floor(diff / 86400); // 3
let hour_diff = Math.floor((diff % 86400) / 3600); // 21
let minute_diff = Math.floor((diff % 3600) / 60); // 2
let second_diff = Math.floor(diff % 60); // 0

第三步,根据时间差显示字符串:

let time_str = '';
if (day_diff > 0) {
  time_str = day_diff + ' 天前';
} else if (hour_diff > 0) {
  time_str = hour_diff + ' 小时前';
} else if (minute_diff > 0) {
  time_str = minute_diff + ' 分钟前';
} else {
  time_str = second_diff + ' 秒前';
}
console.log(time_str); // 3 天前

示例二

假设当前时间是 2021 年 9 月 15 日 19:30:00,我们需要计算出 2021 年 9 月 15 日 19:29:55 距离当前时间相差多久。

第一步,获取时间戳:

let timestamp = new Date('2021-09-15 19:29:55').getTime(); // 1631742595000

第二步,计算时间差:

let diff = (new Date().getTime() - timestamp) / 1000; // 5
let day_diff = Math.floor(diff / 86400); // 0
let hour_diff = Math.floor((diff % 86400) / 3600); // 0
let minute_diff = Math.floor((diff % 3600) / 60); // 0
let second_diff = Math.floor(diff % 60); // 5

第三步,根据时间差显示字符串:

let time_str = '';
if (day_diff > 0) {
  time_str = day_diff + ' 天前';
} else if (hour_diff > 0) {
  time_str = hour_diff + ' 小时前';
} else if (minute_diff > 0) {
  time_str = minute_diff + ' 分钟前';
} else {
  time_str = second_diff + ' 秒前';
}
console.log(time_str); // 5 秒前

总之,这个攻略可以帮助我们实现类似微信朋友圈中时间显示的效果,让用户更直观地了解信息更新的时间。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js模仿微信朋友圈计算时间显示几天/几小时/几分钟/几秒之前 - Python技术站

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

相关文章

  • javascript数据类型基础示例教程

    下面是关于“JavaScript数据类型基础示例教程”的完整攻略: 1. 概述 在JavaScript中,数据类型是构造Web应用程序时的重要概念。JavaScript数据类型包括基本数据类型和复杂数据类型。 基本数据类型包括:数字(Numbers)、字符串(Strings)、布尔值(Booleans)、空值(null)和未定义(undefined)。 复杂…

    JavaScript 2023年5月18日
    00
  • Javascript 模拟点击事件(点击链接与html点击) 兼容IE/Firefox

    这里是Javascript模拟点击事件(点击链接与HTML点击)兼容IE/Firefox的完整攻略,下面进行详细讲解,并提供两条示例说明。 前置知识 在了解模拟点击事件之前,需要先了解以下概念: 事件冒泡:指当一个元素触发某个事件(例如点击事件)时,此元素的父元素也会受到影响并触发同样的事件。 事件捕捉:指当一个元素触发某个事件时,此元素的父元素可以先于此元…

    JavaScript 2023年6月11日
    00
  • javascript:void(0)的含义及用法实例

    当我们在网页中点击一个按钮或链接时,为了防止页面刷新或跳转,常常会在href属性中使用“javascript:void(0)”这个值。那么这个值的含义以及用法实例是什么呢?接下来我们详细讲解。 含义 在javascript中,void是一个运算符,用于返回undefined。因此,使用“javascript:void(0)”就是将当前链接的默认行为赋值为“什…

    JavaScript 2023年5月28日
    00
  • 使用JavaScript解析URL的方法示例

    下面我就来详细讲解一下“使用JavaScript解析URL的方法示例”的完整攻略。 什么是URL? 在讲解解析URL的方法之前,我们需要先了解一下什么是URL。URL(Uniform Resource Locator)是指统一资源定位符,简单来说就是我们用来表示资源在网络上位置的方法。URL包含了一些组成部分,例如:协议、域名、端口号、路径、查询参数等等。 …

    JavaScript 2023年5月27日
    00
  • js 剪切板应用clipboardData详细解析

    JS 剪切板应用 clipboardData 详细解析 简介 JavaScript 使用 clipboardData 接口可以实现网页内容和剪贴板之间的交互。通过该接口,我们可以轻松地将文本、图像等数据从我们的网页复制到用户剪贴板中,也可以从剪贴板中获取用户复制的内容并进行处理。 clipboardData 属性 clipboardData 是一个全局对象,…

    JavaScript 2023年6月11日
    00
  • javascript typeof id===’string’?document.getElementById(id):id解释 原创

    “javascript typeof id===’string’?document.getElementById(id):id” 是一段 JavaScript 三元运算符语句。这段代码的作用是:判断变量 id 是否是字符串类型,如果是,则执行 document.getElementById(id),否则返回变量 id。 具体来说,其中涉及到以下部分: “ty…

    JavaScript 2023年6月10日
    00
  • vue.js利用Object.defineProperty实现双向绑定

    Vue.js是一款流行的JavaScript框架,它提供了一种简单易用的双向绑定机制。这个机制能够直接监测数据模型的变化并及时更新视图,同时也支持用户的交互操作实现数据的修改。 Vue.js采用了基于Object.defineProperty实现的双向绑定机制,通过这个机制我们可以将数据模型和视图双向绑定起来。下面我们将详细介绍这个机制的实现方法。 1、Ob…

    JavaScript 2023年6月11日
    00
  • AngularJS验证信息框架的封装插件用法【w5cValidator扩展插件】

    让我来详细讲解一下“AngularJS验证信息框架的封装插件用法【w5cValidator扩展插件】”的完整攻略。 什么是w5cValidator? w5cValidator是一个简单易用的AngularJS表单验证框架,可以通过自定义指令来验证表单元素的合法性,并且支持内置的一些常用验证规则。 如何使用w5cValidator? 步骤一:引入w5cVali…

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