我在尝试将8601转换成可读格式时遇到了相当糟糕的情况。日期显示为'P0DT0H0M10S‘,并存储在一个名为timeLeft的变量中。我在网上找到的每一篇文章都告诉我如何将日期转换为8601格式,但不是反过来。
我尝试使用moment.js,但它似乎是围绕当前日期,而不是由我的timeLeft变量设置的日期。如何将此var转换为用户友好的格式?谢谢
发布于 2016-01-14 03:01:48
Moment有一个duration type
var duration = moment.duration('P1Y2M3DT4H5M6S');
// user-friendly format
var out = duration.humanize();
snippet.log(out);<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.11.1/moment.min.js"></script>
<script src="https://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
发布于 2016-01-14 02:35:05
首先,这不是一个ISO-8601 date (甚至不是很接近)。
其次,使用moment("20111031", "YYYYMMDD")语法(从他们的front page examples中)将一个字符串momentjs does support parsing成一个时刻。
我不确定您需要的模式是什么,但可能是像[P]D[DT]H[H]M[M]S[S]这样的模式。
https://stackoverflow.com/questions/34774354
复制相似问题