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');
我正在使用 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');