Moment.js fromNow() 早了几秒

d3w*_*abe 4 javascript datetime date momentjs

我在使用 moment.js“fromNow()”函数使用“几秒钟前”、“一小时前”等文本来格式化时间时遇到问题。

除了早了几秒钟这一事实之外,它工作得很好,这几乎总是不易察觉,但如果我在数据库中创建一个条目并立即刷新我的页面,它会告诉我我正在查看的条目是“在几秒钟”(这显然是不可能的)。

这是我用来返回前段时间文本的代码......

moment(create_date_from_mysql_db  + " +0000", "YYYY-MM-DD HH:mm:ss Z").fromNow()
Run Code Online (Sandbox Code Playgroud)

(其中 create_date_from_mysql_db 看起来像:“2016-02-04 23:05:25”)

有什么想法我可能在这里做错了吗?我从另一篇 stackoverflow 帖子中获取了确切的格式参数,因为我发现数据库时间和浏览器时间之间存在差异。现在我只需要找到一种方法来修复这几秒钟的最终差异 - 即使是像某种方式在计算中添加几秒钟这样的黑客解决方案对我来说也很好!感谢您的任何想法。

sea*_*lea 5

如果数据库位于不同的服务器上,这是完全有可能的 - 这是一台或两台机器不同步时钟的结果。在您的情况下,听起来您的计算机(运行浏览器的计算机)上的时钟比服务器晚了几秒钟。

也许这个问题的答案会有所帮助。

  • PS为了其他人查看这篇文章的利益,这里是黑客解决方案...moment(create_date_from_mysql_db + " +0000", "YYYY-MM-DD HH:mm:ss Z").subtract(20,'s' )。现在起(); (4认同)