下面的代码是不言自明的,但无法正常工作。如果相差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 ago”。
我可能错过了一些小事。任何帮助将非常感激。
开关用于与值进行比较。为了使您的代码正常工作,必须
switch(true) {
case dayDiff == 0:
....
}
但这是在开关中使用条件语句的不良做法,仅使用if语句
const formatTime = time => {
const dayDiff = moment().diff(moment(time), 'days')
if (dayDiff == 0) {
return `${moment().diff(moment(time), 'hours')}h ago`
} else if (dayDiff < 31) {
return `${moment().diff(moment(time), 'days')}d ago`
} else if (dayDiff < 365) {
return `${moment().diff(moment(time), 'months')}m ago`
} else {
return `${moment().diff(moment(time), 'years')}y ago`
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句