这段代码已经获取到x日期为止的天数,但是当x日期到达同一日期时它将继续计数,如何将其归零以停止计数?

const counters = this.state.counters.map((counters, i) => {
  let untildate = counters.date
  let diffDays1=(function(){
    let oneDay = 24*60*60*1000 // hours*minutes*seconds*milliseconds
    let secondDate = new Date(untildate);
    let firstDate = new Date();
    return (`${Math.round(Math.abs((firstDate.getTime() - secondDate.getTime())/(oneDay)))} Days`)
  })();


如果输入日期为2019-04-05T20:00:00.782Z,则输出应为0

最佳答案

使用Math.max返回两个值中的较大者。在您的情况下,仅当该天数大于0时,您才想返回剩余天数,否则,您要返回0:

const counters = this.state.counters.map((counters, i) => {
  let untildate = counters.date
  let diffDays1=(function(){
    let oneDay = 24*60*60*1000 // hours*minutes*seconds*milliseconds
    let secondDate = new Date(untildate);
    let firstDate = new Date();
    return (`${Math.max(0, Math.round(Math.abs((firstDate.getTime() - secondDate.getTime())/(oneDay))))} Days`)
  })();

关于javascript - 如何获取直到X日期的天数,以及如何在X日期达到0时停止计数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56118199/

10-10 21:18
查看更多