我有一個非常可怕的時間試圖將8601轉換爲可讀格式。日期顯示爲'P0DT0H0M10S'並存儲在一個名爲timeLeft的變量中。我在網上找到的每篇文章都告訴我如何將日期轉換爲8601格式,但不是相反。8601 ISO字符串到Javascript中的可讀日期格式
我嘗試過使用moment.js,但似乎圍繞當前日期而不是一個由我的timeLeft var設置。我如何將這個var變成用戶友好的格式?謝謝
我有一個非常可怕的時間試圖將8601轉換爲可讀格式。日期顯示爲'P0DT0H0M10S'並存儲在一個名爲timeLeft的變量中。我在網上找到的每篇文章都告訴我如何將日期轉換爲8601格式,但不是相反。8601 ISO字符串到Javascript中的可讀日期格式
我嘗試過使用moment.js,但似乎圍繞當前日期而不是一個由我的timeLeft var設置。我如何將這個var變成用戶友好的格式?謝謝
首先,這不是一個ISO-8601 date(甚至沒有關閉)。
二,momentjs does support parsing一個字符串變成了一個片刻,用moment("20111031", "YYYYMMDD")
語法(從它們的front page examples)。
我不確定你需要什麼樣的模式,但可能像[P]D[DT]H[H]M[M]S[S]
。
也許向下滾動一下:https://en.wikipedia.org/wiki/ISO_8601#Durations – epascarello
@epascarello好的。我打算調用語義,並說他們仍然不是日期,因此。時刻仍然應該能夠解析它們,並且可以在與當前或其他日期結合時做一些有意義的事情。 – ssube
時刻有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>
這串並不像ISO 8601的格式。該格式涉及類似「2010-01-01T05:06:07」的日期。 – Pointy
它是[持續時間格式](https://en.wikipedia.org/wiki/ISO_8601#Durations)... – epascarello
@epascarello啊好的。那麼在這種情況下,我不確定將時間段轉換爲Date實例的意義。我想你可以得到一個日期相對於其他日期偏移的持續時間,我想這可能是OP所談論的。 – Pointy