Javascript 如何通过减去超时函数中要使用的2个日期来获得剩余的毫秒数?

Javascript 如何通过减去超时函数中要使用的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(

我有这个密码 请注意,活动日期为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()

但它在第一百位返回的数字相对较小,而它至少应该在第千位返回一些东西

更新:这是完整的代码。谢谢你的回答

  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爵士!谢谢你,罗森爵士!