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

下面是“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 中,我们可以使用 requestFullscreen 方法将网页全屏。该方法是在 document 对象上定义的,通过该方法可以完全控制浏览器的全屏模式。 document.documentElement.requestFullscreen() 类似的还有…

    JavaScript 2023年6月11日
    00
  • 浅析JavaScriptSerializer类的序列化与反序列化

    浅析JavaScriptSerializer类的序列化与反序列化 什么是JavaScriptSerializer类 JavaScriptSerializer类是一个.NET框架中的类,它是用于将对象序列化和反序列化为JSON格式的工具类。在Web应用程序中,它通常用于将服务器端的数据(比如查询数据库后查询出的结果集)转换为JSON格式,然后通过HTTP响应发…

    JavaScript 2023年5月27日
    00
  • JS获取子、父、兄节点方法小结

    JS获取子、父、兄节点方法小结 在JavaScript中,我们经常需要获取某个元素的子元素、父元素或者兄弟元素来执行一些特定的操作。下面我们来总结一下JS获取子、父、兄节点的常用方法。 一、获取子节点 使用childNodes属性可以获取当前元素的所有子节点,包括文本节点、注释节点等。但是这个属性返回的是一个NodeList对象,如果想要获取指定位置的子元素…

    JavaScript 2023年6月10日
    00
  • js中split函数的使用方法说明

    下面是“js中split函数的使用方法说明”的完整攻略。 什么是split函数 split函数是JavaScript中的一个字符串方法,主要用于将一个字符串根据指定的分隔符,切割成一个字符串数组。 其语法如下: string.split(separator, limit); 其中,separator代表指定的分隔符,可以是一个字符串或一个正则表达式;limi…

    JavaScript 2023年5月27日
    00
  • 原生js仿jquery实现对Ajax的封装

    下面是“原生js仿jquery实现对Ajax的封装”的完整攻略。 一、准备工作 在编写封装函数之前,我们需要首先准备好相关的环境和资源,包括: 一个封装Ajax的函数(我们将在下面进行编写) 一个浏览器环境,可以使用Chrome浏览器、Firefox浏览器等 一个文本编辑器,可以使用Sublime Text、Visual Studio Code等 一份API…

    JavaScript 2023年6月11日
    00
  • PHP的Yii框架的基本使用示例

    下面是关于“PHP的Yii框架的基本使用示例”的完整攻略。 一、什么是Yii框架? Yii框架是一个高性能的、基于组件的PHP框架,它具有良好的扩展性和灵活性,是一个适用于Web应用开发的框架。Yii框架可以让开发者在减少重复性工作的同时,保持代码的规范和可读性。 二、Yii框架的安装 首先,我们需要安装Yii框架,可以通过Composer来进行安装,执行以…

    JavaScript 2023年6月11日
    00
  • 动态加载JavaScript文件的两种方法

    当我们开发网站时,通常需要使用JavaScript来实现一些交互式效果,但是如果我们在HTML中直接将JavaScript代码写在页面中的话,会造成页面加载速度变慢,如果JavaScript代码很大的话,可能会严重影响用户体验。那么,如何能够提高网站的加载速度呢?答案是:动态加载JavaScript。 动态加载JavaScript的优势有: 减少页面的加载时…

    JavaScript 2023年5月27日
    00
  • js内存泄漏场景、如何监控及分析详解

    JS内存泄漏场景、如何监控及分析详解 什么是JS内存泄漏? JS内存泄漏是指在代码中,一些不再需要的对象仍然存在于内存中,却没有被正确地释放,最终导致内存不足、程序崩溃等问题。常见的内存泄漏场景有如下几个: 全局变量:在全局环境中定义的变量、函数、对象等,没有被垃圾回收机制清除,会一直存在于内存中。 定时器:使用setInterval和setTimeout定…

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