首页 > 解决方案 > 两个日期之间的差异。反应原生(js)

问题描述

我正在尝试获取两个日期之间发生的时间。例子:

oldDate = "2020 年 4 月 16 日,12:00:00"

今天 =“2021 年 5 月 17 日,1:00:50”

结果需要:

年 = 1

月 = 1

天 = 1

小时 = 1

分钟 = 0

秒 = 50

我还想每秒刷新一次,以便用户可以看到它正在运行。谢谢。

标签: javascriptreact-native

解决方案


用于从字符串Date.parse()中获取Date对象,使用运算符减去两个日期-,使用相应的方法获取年数、月数、天数等​​。然后使用setInterval每秒运行一次,并Date.now()获取当前时间。

const oldDate = Date.parse("4/10/2020, 12:00:00");

// weird but seems to work with all dates 
const getYear = (date) => date.getFullYear() - 1970;
const timeBetweenDates = (date1, date2) => {
  const date = new Date(date1 - date2);
  return {
    years: getYear(date),
    months: date.getMonth(),
    days: date.getDay(),
    hours: date.getHours(),
    minutes: date.getMinutes(),
    seconds: date.getSeconds(),
  }
}
const pre = document.getElementById("display");
setInterval(() => {
  pre.textContent = JSON.stringify(
    timeBetweenDates(Date.now(), oldDate),
    0, 
    2
  );
}, 1000);
<pre id="display">Wait a second...</pre>


推荐阅读