在我的 react-native 應用程式的 timepicker 組件中,我需要將一個值傳遞給 moment 的toDate()函式,因為這是組件所需的格式。
我擁有的值是一個時鐘值,以字串形式出現,例如“14:23”。
我的問題是,如何獲取該時鐘字串值,將其附加到日期,然后以這樣的方式格式化它,以便我可以將其全部作為val要在此處傳遞的值傳遞:
this.value = moment(val).toDate();
我試過這個:
const val = "14:24"
const m = moment(`2022-02-19:${val}`);
console.log('isValid: ', m.isValid()); // false
但這失敗了。
但是,就此而言,這也是如此:
const m = moment("2011-10-10T10:20:90");
console.log('isValid: ', m.isValid()); // false
所以我想這并不奇怪,并表明我在這里不理解一些東西。底線我如何格式化一個值,像“14:24”這樣的字串值,然后將它傳遞給moment的toDate()函式?
this.value = moment(val).toDate();
uj5u.com熱心網友回復:
Moment 有一個格式化程式,可以格式化然后將此字串決議為 JavaScript 日期。您當前使用的格式不是標準的 ISO8601 格式 YYYY-MM-DDTHH:mm:ssZ,因此 moment 本身不會支持它,因為您在一天之后使用 : 符號,而不是字母“T”。
您可以通過如下更改代碼輕松獲得所需的效果:
const m = moment(`2022-02-19T${val}`);
或者,您可以更改時刻 defaultFormatter 以支持您想要的任何格式。為此,您可以像這樣簡單地呼叫它:
moment.defaultFormat = "YYYY-MM-DD:HH:mm"
或者簡單地將格式化程式顯式傳遞到日期字串旁邊的時刻,如下所示:
const m = moment(`2022-02-19:${val}`, "YYYY-MM-DD:HH:mm").toDate()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/417105.html
標籤:
上一篇:ReactNative:在ReactNavigation中添加BottomTab組件
下一篇:如何使筆畫變圓
