javascript - 如何通过减去要在 timeOut 函数中使用的 2 个日期来获得剩余的毫秒数?
问题描述
我有这个代码注意事件日期是 2018-09-27 和事件 timeEnd 是 18:37
let now = new Date();
let eventEnd = new Date(
`${this.attendanceParameters.attendance_event_date},
${this.attendanceParameters.attendance_time_end}`);
让差异 = now.getMilliseconds() - eventEnd.getMilliseconds();
但是当它应该至少在第一千位返回一些东西时,它会在百分之一的位置返回一个相对较小的数字
更新:这是完整的代码。谢谢回答!
hostAttendance() {
let now = new Date();
let eventStart = new Date(
`${this.attendanceParameters.attendance_event_date},
${this.attendanceParameters.attendance_time_start}`);
let eventEnd = new Date(
`${this.attendanceParameters.attendance_event_date},
${this.attendanceParameters.attendance_time_end}`);
if (now >= eventStart && now <= eventEnd) {
this.hostSignInAttendance();
let difference = (+eventEnd) - (+now);
console.log(difference);
setTimeout(() => {
this.hostSignOutAttendance();
}, difference)
}
else if (now > eventEnd) {
}
else if (now < eventStart) {
this.alert('Event has not yet started', 'Please wait until event has concluded, thank you!', 'Ok');
}
}
解决方案
getMilliseconds
返回一个介于 0 和 999 之间的数字。如,5 hours 6 minutes 7 seconds 8 milliseconds
将只返回8
(not 8 + 7 * 1000 + 6 * 1000 * 60 + 5 * 1000 * 60 * 60
)。
要获得总毫秒数,只需+
在日期前添加一个数字即可:
const date1 = new Date(...)
const date2 = new Date(...)
const diff = (+date2) - (+date1)
在上面的代码中,diff
将两个时间戳之间的毫秒数。
从技术上讲,您也可以这样做date2 - date1
,但这可能有点误导,因为它是一种隐式类型强制,您可能希望避免这种强制,以免在阅读我们的代码时混淆您自己和其他人。
推荐阅读
- javascript - 如何使用 express 显示实时变量 node.js
- javascript - 为什么这个阶乘查找算法不是 O(n!) 运行时复杂度?
- c - 逻辑&&和||怎么做 算子随着增量和减量工作?
- html - 引导导航栏汉堡下拉菜单在桌面(所有分辨率)上工作正常,但在移动设备上不工作
- python - 有没有办法根据用户输入调用特定变量?
- c++ - 我有两个类需要在同一个 cpp 文件中相互引用,但第一个类无法识别第二类类型的对象
- server - 是否需要重启 Cloud VPS
- c - 使用 strtok 打破用户在 c 中输入的句子并将句子放入二维数组中
- python - 给定 n 列的数据框,我想计算每列中特定数字的频率
- c++ - 如何向已经存在的 TTree 添加分支:ROOT