
您是否在任何网站上看到过显示时间戳的通知?它显示诸如“12 分钟前”、“2 天前”、“10 小时前”等内容。它与两个日期或时间之间的时间戳差异有关。
此外,某些应用显示该设备的上次登录时间是 22 小时前。因此,获取两个日期之间的时间戳差异有很多用途。
在本教程中,我们将学习不同的方法来获取两个日期之间的相对时间戳差异。
使用带有日期的 getTime() 方法并创建自定义算法
在 JavaScript 中,我们可以使用 new Date() 构造函数创建日期对象。此外,我们可以将特定日期作为 Date() 构造函数的参数传递,以使用该日期值初始化日期对象。
立即学习“Java免费学习笔记(深入)”;
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 构造函数创建了两个不同的日期对象,并使用上述步骤查找两个日期之间的相对时间戳。
在输出中,用户可以观察到以下代码代表月份的时间戳差异。
Getting the relative timestamp difference between two dates using the custom algorithm
使用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() 方法来获取两个日期之间的相对时间戳差异,如上述语法和步骤中所述。
Getting the relative timestamp difference between two dates using the RelativeTimeFormat() method
用户学会了使用 if-else 语句和 RelativeTimeFormat() API 的 format() 方法查找两个日期之间的相对时间戳。用户可以根据自己的需要使用这两种方法。











