您是否在任何网站上看到过显示时间戳的通知?它显示诸如“12 分钟前”、“2 天前”、“10 小时前”等内容。它与两个日期或时间之间的时间戳差异有关。
此外,某些应用显示该设备的上次登录时间是 22 小时前。因此,获取两个日期之间的时间戳差异有很多用途。
在本教程中,我们将学习不同的方法来获取两个日期之间的相对时间戳差异。
使用带有日期的 getTime() 方法并创建自定义算法
在 JavaScript 中,我们可以使用 new Date() 构造函数创建日期对象。此外,我们可以将特定日期作为 Date() 构造函数的参数传递,以使用该日期值初始化日期对象。
getTime() 方法返回从 1970 年 1 月 1 日至今的总秒数。因此,我们可以找到两个日期的总毫秒数,然后减去它们以获得毫秒差。使用该毫秒,我们可以找到以秒、分钟、年等为单位的时间戳差异。
语法
用户可以按照下面的语法来获取两个日期之间的相对时间戳差异。
let second_diff = (current_date.getTime() - previous_date.getTime())/1000;
在上面的语法中,current_date 和 pervious_date 是两个不同的日期。我们使用 getTime() 方法来获取两个日期之间的毫秒差。
注意- 通过将 second_diff 变量的值与毫秒进行比较,您可以获得相对时间戳差异。
步骤
用户可以按照以下步骤查找不同单位(例如天、月、年等)的两个日期之间的相对时间戳。
第 1 步 - 创建两个不同的日期。
步骤 2 - 使用 getTime() 方法获取两个日期的总毫秒数并获取它们之间的差值。另外,将毫秒差除以 1000 将其转换为秒,并将其存储在 secondary_diff 变量中。
步骤 3 - 现在,使用 if-else 条件语句来查找相对时间戳差异。
步骤 4 - 如果 second_diff 的 值小于 60,则差异以秒为单位。 Second_diff 的值在 60 到 3600 之间,差异以小时为单位。用户还可以像这样计算日、月、年。
示例
在下面的示例中,我们使用 Date 构造函数创建了两个不同的日期对象,并使用上述步骤查找两个日期之间的相对时间戳。
在输出中,用户可以观察到以下代码代表月份的时间戳差异。
<html> <body> <h3 id="Getting-the-relative-timestamp-difference-between-two-dates-using-the-i-custom-algorithm-i">Getting the relative timestamp difference between two dates using the <i> custom algorithm </i></h3> <p id="output"></p> <script> let output = document.getElementById("output"); // creating the current date let current_date = new Date(); // previous date let previous_date = new Date("jan 14, 2022 12:21:45"); // finding the difference in total seconds between two dates let second_diff = (current_date.getTime() - previous_date.getTime()) / 1000; output.innerHTML += "The first date is " + current_date + "</br>"; output.innerHTML += "The second date is " + previous_date + "</br>"; // showing the relative timestamp. if (second_diff < 60) { output.innerHTML += "difference is of " + second_diff + " seconds."; } else if (second_diff < 3600) { output.innerHTML += "difference is of " + second_diff / 60 + " minutes."; } else if (second_diff < 86400) { output.innerHTML += "difference is of " + second_diff / 3600 + " hours."; } else if (second_diff < 2620800) { output.innerHTML += "difference is of " + second_diff / 86400 + " days."; } else if (second_diff < 31449600) { output.innerHTML += "difference is of " + second_diff / 2620800 + " months."; } else { output.innerHTML += "difference is of " + second_diff / 31449600 + " years."; } </script> </body> </html>
使用Intl的RelativeTimeFormat() API
Intl是指国际化API。它包含各种日期和时间格式化方法。我们可以使用 Intl 对象的 RelativeTimeFormat() 方法来获取两个日期之间的相对时间戳。
语法
用户可以按照以下语法使用RelativeTimeFormat() API 来获取两个日期之间的相对时间戳。
var relativeTimeStamp = new Intl.RelativeTimeFormat("en", { numeric: "auto",}); // compare the value of RelativeTimeStamp with milliseconds of different time units
在上述语法中,RelativeTimeFormat() 方法返回时间戳差异。 time_Stamp_unit 是一个包含不同时间单位及其总毫秒数的对象。
步骤
第 1 步 - 创建一个单位对象,其中包含时间单位作为键,总毫秒数作为该时间单位的值。
步骤 2 - 获取两个日期之间的时间差(以毫秒为单位)。
第 3 步 - 现在使用 for-in 循环迭代 time_stamp_unit 对象并检查 second_diff 的值是否大于特定时间的总毫秒数;使用 RelativeTimeFormat() API 的 format 方法来格式化该特定单位的时间戳。
第 4 步 - 之后,中断 for 循环。
示例
在下面的示例中,我们使用 RelativeTimeFomrat() 方法来获取两个日期之间的相对时间戳差异,如上述语法和步骤中所述。
<html> <body> <h3 id="Getting-the-relative-timestamp-difference-between-two-dates-using-the-i-RelativeTimeFormat-i-method">Getting the relative timestamp difference between two dates using the <i> RelativeTimeFormat() </i> method </h3> <p id="output"></p> <script> let output = document.getElementById("output"); let current_date = new Date(); let previous_date = new Date("jan 14, 2022 12:21:45"); // finding the difference in total seconds between two dates let second_diff = current_date.getTime() - previous_date.getTime(); output.innerHTML += "The first date is " + current_date + "</br>"; output.innerHTML += "The second date is " + previous_date + "</br>"; var time_Stamp_unit = { year: 31536000000, month: 31536000000 / 12, day: 86400000, hour: 3600000, minute: 60000, second: 1000, }; var relativeTimeStamp = new Intl.RelativeTimeFormat("en", { numeric: "auto", }); // iterate through all time stamps for (var ele in time_Stamp_unit) { // if second_diff's value is greater than particular timesapm unit's total millisecond value, format accordingly if (Math.abs(second_diff) > time_Stamp_unit[ele] || ele == "second") { output.innerHTML += "The difference between two dates is " + relativeTimeStamp.format( Math.round(second_diff / time_Stamp_unit[ele]), ele ); break; } } </script> </body> </html>
用户学会了使用 if-else 语句和 RelativeTimeFormat() API 的 format() 方法查找两个日期之间的相对时间戳。用户可以根据自己的需要使用这两种方法。
以上是在 JavaScript 中获取日期之间的相对时间戳差异的详细内容。更多信息请关注PHP中文网其他相关文章!

JavaScript字符串替换方法详解及常见问题解答 本文将探讨两种在JavaScript中替换字符串字符的方法:在JavaScript代码内部替换和在网页HTML内部替换。 在JavaScript代码内部替换字符串 最直接的方法是使用replace()方法: str = str.replace("find","replace"); 该方法仅替换第一个匹配项。要替换所有匹配项,需使用正则表达式并添加全局标志g: str = str.replace(/fi

因此,在这里,您准备好了解所有称为Ajax的东西。但是,到底是什么? AJAX一词是指用于创建动态,交互式Web内容的一系列宽松的技术。 Ajax一词,最初由Jesse J创造

本文讨论了在浏览器中优化JavaScript性能的策略,重点是减少执行时间并最大程度地减少对页面负载速度的影响。

本文讨论了使用浏览器开发人员工具的有效JavaScript调试,专注于设置断点,使用控制台和分析性能。

将矩阵电影特效带入你的网页!这是一个基于著名电影《黑客帝国》的酷炫jQuery插件。该插件模拟了电影中经典的绿色字符特效,只需选择一张图片,插件就会将其转换为充满数字字符的矩阵风格画面。快来试试吧,非常有趣! 工作原理 插件将图片加载到画布上,读取像素和颜色值: data = ctx.getImageData(x, y, settings.grainSize, settings.grainSize).data 插件巧妙地读取图片的矩形区域,并利用jQuery计算每个区域的平均颜色。然后,使用

本文将引导您使用jQuery库创建一个简单的图片轮播。我们将使用bxSlider库,它基于jQuery构建,并提供许多配置选项来设置轮播。 如今,图片轮播已成为网站必备功能——一图胜千言! 决定使用图片轮播后,下一个问题是如何创建它。首先,您需要收集高质量、高分辨率的图片。 接下来,您需要使用HTML和一些JavaScript代码来创建图片轮播。网络上有很多库可以帮助您以不同的方式创建轮播。我们将使用开源的bxSlider库。 bxSlider库支持响应式设计,因此使用此库构建的轮播可以适应任何

数据集对于构建API模型和各种业务流程至关重要。这就是为什么导入和导出CSV是经常需要的功能。在本教程中,您将学习如何在Angular中下载和导入CSV文件


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Dreamweaver Mac版
视觉化网页开发工具

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

SublimeText3汉化版
中文版,非常好用