【发布时间】:2020-01-31 23:32:40
【问题描述】:
我在使用用户时区的时刻 js 中的 fromNow 函数存在问题。
只有在用户 PC 上的时钟设置绝对正确时才能正常工作。
例如,如果我将时钟设置为距实际时间 -15 分钟并在网站上发布新评论,它将显示“15 分钟内发布的评论”而不是“几秒钟前发布的评论”。
我试过了
moment(dateInUTCFromServer).local().fromNow() // in 15 minutes.
和
moment.utc(dateInUTCFromServer).fromNow() // in 15 minutes.
它们现在可以正常工作。
dateInUTCFromServer 是数据库中的常规时间戳日期对象。我想以“从现在开始”的格式向用户显示此日期。 console.log(dateInUTCFromServer) // 2020-01-29 12:25:48
在很多情况下,即使我尝试在我的 PC 上设置正确的时间,它也会给我 “在一秒钟内” 而不是 “几秒钟前”。 在某些情况下,这些问题可能很关键。例如,显示截止日期。
是否可以使用“从现在开始”格式忽略用户的 PC 时间设置?
【问题讨论】:
-
具体是什么
nowFromServer。它是一个字符串吗?一个号码?Date对象?别的东西?还请显示您实际使用的示例值。谢谢。 -
顺便说一句,您不能保证用户的时钟准确度,但时区通常不应考虑到此类比较。
-
亲爱的@MattJohnson-Pint,我刚刚更新了我的问题。 nowFromServer(更改为 dateInUTCFromServer)是数据库中 UTC 格式的时间戳日期对象(2020-01-29 12:25:48)。我想将此数据显示为“...分钟前”给用户。
标签: javascript momentjs