javascript - 两个日期之间的差异。反应原生(js)
问题描述
我正在尝试获取两个日期之间发生的时间。例子:
oldDate = "2020 年 4 月 16 日,12:00:00"
今天 =“2021 年 5 月 17 日,1:00:50”
结果需要:
年 = 1
月 = 1
天 = 1
小时 = 1
分钟 = 0
秒 = 50
我还想每秒刷新一次,以便用户可以看到它正在运行。谢谢。
解决方案
用于从字符串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>
推荐阅读
- javascript - 数据库数组没有插入我的数据库有什么问题?
- javascript - 在js中添加带有编辑文本的新表格
- javascript - 如何删除 TypeScript 类型注释但保留格式?
- php - 先前插入的值在页面刷新时自动插入
- node.js - 节点模块 - aes256 - crypto.createHash 不是函数
- spring-boot - 使用表单数据上传 Spring Boot 文件?
- rest - 空响应和未找到响应的 HTTP 状态码
- flutter - Flutter 的 Text 小部件如何让它显示所有以空格结尾的空格?
- sql - 这个公用表表达式中的N(N)是什么意思
- java - Android Studio 无法运行单个类