【发布时间】:2020-07-17 15:05:36
【问题描述】:
下面的代码是不言自明的,但它没有按预期工作。如果相差 0 天,则返回 '0y ago'
const formatTime = (time) => {
const dayDiff = moment().diff(moment(time), 'days')
switch (dayDiff) {
case dayDiff == 0:
return `${moment().diff(moment(time), 'hours')}h ago`
case dayDiff > 0 && dayDiff < 31:
return `${moment().diff(moment(time), 'days')}d ago`
case dayDiff > 31 && dayDiff < 365:
return `${moment().diff(moment(time), 'months')}m ago`
default:
return `${moment().diff(moment(time), 'years')}y ago`
}
}
如果时间在同一天,那么它会以默认情况结束,而它应该以第一种情况结束并返回“0h 前”。
我可能错过了一些小事。任何帮助将不胜感激。
【问题讨论】:
-
这不是你使用开关的方式。摆脱 switch 并使用 if/else if/else
-
@epascarello 感谢您分享此链接。我不知道 Moment 中已经存在类似的东西。我要改用这个。
标签: javascript datetime momentjs