[英]Unable to convert the string date and time to format using Moment.JS
我有一個日期格式,如 date =“20190516”和時間如:“073000”,我正在嘗試使用 moment js 將其轉換為正常日期格式,但我收到NAN錯誤
let dat = "20190516"
let form = moment(dat).format('YYYY-MM-DD');
alert(form);
let dat = "073000"
let form = moment(dat).format('HH:MM:ss');
alert(form);
第一種格式
const newFormat = moment('20190516','YYYYMMDD').format('YYYY-MM-DD');
alert(newFormat);
第二種格式
const newFormat = moment('073000','HHmmss').format('HH:mm:ss');
alert(newFormat);
由於您以字符串格式傳遞時間並且它不在 ISO 8601 中,您需要定義它是什么格式,否則您將收到來自moment.js
的 function 已棄用警告
如果您沒有在您的情況下定義格式類型,則需要添加HHmmss
否則您將收到此類警告。
警告:瀏覽器對解析字符串的支持不一致。 因為沒有關於應該支持哪些格式的規范,所以在某些瀏覽器中有效的內容在其他瀏覽器中無效。為了解析除 ISO 8601 字符串以外的任何內容的一致結果,您應該使用String + Format 。
在moment 官方文檔中閱讀有關字符串類型和日期的更多信息
運行下面的代碼段。
let time = "073000" let timeFormatted = moment(time, 'HHmmss').format('HH:mm:ss'); console.log('Time: '+ timeFormatted) let date = "20190516" let dateFormatted = moment(date).format('YYYY-MM-DD'); console.log('Date: '+ dateFormatted)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.23.0/moment.min.js"></script>
您需要告訴 Moment 如何解析073000
,因為它不是 ISO 8601 或 RFC 2822 日期時間格式,因此無法推斷。
從字符串創建時刻時,我們首先檢查字符串是否與已知的 ISO 8601 格式匹配,然后檢查字符串是否與 RFC 2822 日期時間格式匹配,如果已知格式為未找到。
let dat = "20190516";
let form = moment(dat).format("YYYY-MM-DD");
alert(form);
let dat = moment("073000", "HHmmss");
let form = moment(dat).format("HH:mm:ss");
alert(form);
順便說一句, MM
用於格式化月份,而mm
用於格式化分鍾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.