簡體   English   中英

Moment.js 在 Firefox 中給出無效日期

[英]Moment.js gives Invalid date in Firefox

我需要在 moment.js 中轉換日期時間。 但它在 Chrome 和 Firefox 中給了我不同的結果。

在 Google Chrome 中,它給出了正確的結果,但在 Mozilla firefox 中給出了“無效日期”。

谷歌瀏覽器

moment('2016-Jan-02 02:00 AM').format()
Output: "2016-01-02T02:00:00+05:30"

火狐瀏覽器

moment('2016-Jan-02 02:00 AM').format()
"Invalid date"

非常感謝您的幫助。

建議避免使用自定義格式的矩解析。 正如文檔所述

警告:瀏覽器對解析字符串的支持不一致。 因為沒有關於應該支持哪些格式的規范,所以在某些瀏覽器中有效的內容在其他瀏覽器中無效。

對於解析除 ISO 8601 字符串以外的任何內容的一致結果,您應該使用 String + Format。

在您的情況下,一致解析的代碼將是:

moment('2016-Jan-02 02:00 AM', 'YYYY-MMM-DD HH:mm A')

您沒有指定解析字符串 2016-Jan-02 的格式。 所以 moment 回退到本地 Date 對象,這在不同的瀏覽器中是不一致的。 要一致地解析日期,請包含格式字符串。

例如

moment("2016-Jan-02", "DD-MMM-YYYY")

然后,如果您想將 moment 對象格式化為字符串,您可以執行之前的操作:

moment("2016-Jan-02", "DD-MMM-YYYY").format("DD-MM-YYYY")

它在兩個瀏覽器中都返回字符串 02-01-2016。

您需要在 moment 中指定輸入日期格式

moment("input_date_string", "format_of_input_date_string").format("format_of_output_date_string")

例如:

moment("27-06-2022", "DD-MM-YYYY").format("YYYY-MM-DD")

輸出:2022-06-27

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM