Javascript 如何通过减去超时函数中要使用的2个日期来获得剩余的毫秒数?
我有这个密码 请注意,活动日期为2018-09-27,活动结束时间为18:37Javascript 如何通过减去超时函数中要使用的2个日期来获得剩余的毫秒数?,javascript,angular,datetime,Javascript,Angular,Datetime,我有这个密码 请注意,活动日期为2018-09-27,活动结束时间为18:37 let now = new Date(); let eventEnd = new Date( `${this.attendanceParameters.attendance_event_date}, ${this.attendanceParameters.attendance_time_end}`); 让difference=now.getmillizes()-eventEnd.getmillizes(
let now = new Date();
let eventEnd = new Date(
`${this.attendanceParameters.attendance_event_date},
${this.attendanceParameters.attendance_time_end}`);
让difference=now.getmillizes()-eventEnd.getmillizes()
但它在第一百位返回的数字相对较小,而它至少应该在第千位返回一些东西
更新:这是完整的代码。谢谢你的回答
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');
}
}
hostAttention(){
让我们现在=新日期();
让eventStart=新日期(
`${this.attendanceParameters.attendance\u event\u date},
${this.attendanceParameters.attendance\u time\u start}`);
让eventEnd=新日期(
`${this.attendanceParameters.attendance\u event\u date},
${this.attendanceParameters.attendance\u time\u end}`);
如果(现在>=eventStart&&now{
此.hostSignoutAttention();
},差异)
}
else if(现在>事件结束){
}
else if(现在
getmillizes
返回一个介于0和999之间的数字。与中一样,5小时6分7秒8毫秒
将返回8
(而不是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
,但这可能有点误导,因为这是一种隐式类型强制,您可能希望避免这种强制,以免在阅读我们的代码时混淆自己和他人。getmillizes
返回一个介于0和999之间的数字。与中一样,5小时6分7秒8毫秒
将返回8
(而不是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
,但这可能有点误导,因为这是一种隐式类型强制,您可能希望避免这种强制,以免在阅读我们的代码时混淆自己和他人。只需将一个日期对象与另一个日期对象相减,就会返回毫秒差。然后,您可以将这些毫秒转换为其他所需的时间间隔。
let now=new Date();
让eventEnd=新日期(
`2018-09-27,
18:37`);
让差异=(+eventEnd)-(+now);
控制台日志(差异)代码>只需将一个日期对象与另一个日期对象相减,即可返回以毫秒为单位的差值。然后,您可以将这些毫秒转换为其他所需的时间间隔。
let now=new Date();
让eventEnd=新日期(
`2018-09-27,
18:37`);
让差异=(+eventEnd)-(+now);
控制台日志(差异)代码>您可以尝试以下方法:
let difference = now.getTime() - eventEnd.getTime();
getTime方法将返回一个数字,表示1970年1月1日00:00:00之间经过的毫秒数
您可以尝试以下方法:
let difference = now.getTime() - eventEnd.getTime();
getTime方法将返回一个数字,表示1970年1月1日00:00:00之间经过的毫秒数
什么是“+”呢?为了反负的差异?这只是为了铸造数字。在控制台中试用:+new Date()
提供从1970年1月1日到当前时间的毫秒数。@LazarLjubenovićNice也不知道+方法!(+1)非常感谢各位先生@OlivierKrull+date1
是date1.getTime()的快捷方式,“+”代表什么?为了反负的差异?这只是为了铸造数字。在控制台中试用:+new Date()
提供从1970年1月1日到当前时间的毫秒数。@LazarLjubenovićNice也不知道+方法!(+1)非常感谢各位先生@OlivierKrull+date1
是date1.getTime()的快捷方式
您可能正在寻找函数您可能正在寻找函数谢谢Sumesh爵士!你能解释一下你是怎么做到的吗?仅代码的答案对未来的访客来说不是很有用。谢谢Sumesh先生!你能解释一下你是怎么做到的吗?仅代码的答案对未来的访客来说不是很有用。谢谢Royson爵士!谢谢你,罗森爵士!