[英]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.