Do you see any bugs in this javascript method?

timeDistance: function (fromEpoch) {
      const now = new Date()
      const nowSecs = Math.floor(now / 1000)
      const distMins = Math.ceil((nowSecs - fromEpoch) / 60)
      const fromDate = new Date(0) // The 0 there is the key, which sets the date to the epoch
      fromDate.setUTCSeconds(fromEpoch)

      const ydayDate = new Date()
      ydayDate.setDate(now.getDate() - 1)

      const sixDaysAgo = new Date()
      sixDaysAgo.setDate(now.getDate() - 6)
      sixDaysAgo.setHours(23)
      sixDaysAgo.setMinutes(59)

      const zeroPaddedMins = (fromDate.getMinutes() < 10 ? '0' : '') + fromDate.getMinutes()
      const zeroPaddedHours = (fromDate.getHours() < 10 ? '0' : '') + fromDate.getHours()
      if (distMins < 1) {
        return 'hace un momento'
      } else if (distMins < 60) {
        return 'hace ' + distMins + ' minuto' + (distMins > 1 ? 's' : '')
      } else if (now.toDateString() === fromDate.toDateString()) {
        return `hoy a las ${zeroPaddedHours}:${zeroPaddedMins}`
      } else if (ydayDate.toDateString() === fromDate.toDateString()) {
        return `ayer a las ${zeroPaddedHours}:${zeroPaddedMins}`
      } else if (fromDate.getTime() > sixDaysAgo.getTime()) {
        return `${this.dowNames[fromDate.getDay()]} a las ${zeroPaddedHours}:${zeroPaddedMins}`
      }
    } Do not include the following keywords: date, ydaydate.todatestring, math.ceil((nowsecs, =
user