Moment.js 格式化时间不正确

Moment.js formatted time incorrect

我正在使用 moment.js 格式化日期、时间和持续时间。

从 api 我得到例如这个字符串 "1540034040"。应该转换成13:14

在我的 React 应用程序中,我有一个 returns return moment(time, 'HH:mm').format('HH:mm'); 的函数,但我又得到另一个 15:40?我看到有一个包时刻timezone。但是我不想安装另一个包。

有没有什么方法可以在不安装其他包的情况下瞬间或 javascript 解决这个问题?

您传递的时间字符串(“1540034040”)的长度为 10 位。 moment 包期待这种毫秒格式的字符串(13 位长字符串)。 例如“1540034040000”。

对于这个给定的字符串,时间将转换为具有不同时间的其他过去日期,因为你已经过了秒而不是毫秒。

对于调试,您应该尝试打印给定字符串 ("1540034040") 的完整日期和时间,而不是仅仅打印小时和分钟。它会让事情变得更清楚。

您应该尝试通过毫秒。我相信它会解决问题。

我通过以下方式完成了这项工作: 首先将我的字符串转换为数字,以便我能够使用 unix() 然后使用 moment().format()

进行格式化
const timeString = time;
const timeNumber = parseInt(timeString, 10);
return moment.unix(timeNumber).format('HH:mm');