提问者:小点点

Discord是如何为他们的日期,今天和昨天设置格式的?


我目前正在工作的东西,是不和谐的基础上的网站,我希望能够整合他们的日期格式。

我在说什么呢?

我说的是这个:

null


共1个答案

匿名用户

您可以在下面找到一个快速而肮脏的解决方案,尽管我可能会为此使用。这个逻辑也是一样的。检查这一天是今天还是昨天。如果是,打印单词和时间。如果不是,只打印日期:

null

function isSameDay(date1, date2) {
  return (date1.getDate() === date2.getDate() &&
    date1.getMonth() === date2.getMonth() &&
    date1.getFullYear() === date2.getFullYear())
}

function formatDate(d) {
  const today = new Date()
  const yesterday = new Date(today)
  yesterday.setDate(yesterday.getDate() - 1)
  const timeOptions = {
    hour: '2-digit',
    minute: '2-digit'
  }

  if (isSameDay(d, today)) {
    // it's today
    return `Today at ${d.toLocaleTimeString(undefined, timeOptions)}`
  }

  if (isSameDay(d, yesterday)) {
    // it was yesterday
    return `Yesterday at ${d.toLocaleTimeString(undefined, timeOptions)}`
  }

  return d.toLocaleDateString()
}

// examples
console.log({
  'Now': formatDate(new Date()),
  // geez, this yesterday date is ugly :D
  'Yesterday': formatDate(new Date(new Date().setDate(new Date().getDate() - 1))),
  'On the 5th of January': formatDate(new Date('2021-01-05 11:54'))
})