簡體   English   中英

在 React Native 上沒有調試模式的時刻格式時間將成為無效日期

[英]Moment format the time will become invalid date without debug mode on React Native

時刻版本是 2.24.0

我的日期值為2019-04-23 03:16:00 +0000 UTC

我用 moment 讓它變成亞洲時間,就像:

const moment = require('moment');

const localTime = moment(date).format('YYYY/MM/DD HH:mm');

<Text>{localTime}</Text>

localTime 將顯示2019/04/23 11:16

當我在調試模式下測試它時它起作用了。

但是當我關閉調試模式時, localTime將是

invalid date

Android和IOS都會出現這個問題。

有任何想法嗎?

對於在 Android 上遇到 Moment 日期/時間問題的任何其他人,特別是如果您從 React Native 0.59(或更早版本)遷移到 0.60+,Hermes 似乎改變了 Android 使用 Moment/日期的方式。 但是,它會在啟用調試器時起作用。 事實證明,當您運行調試器時,它會從 Hermes 切換回 Chromium 引擎(或 V8?)。 導致我們不得不使用控制台日志來追蹤 Moment 解析問題。 奇怪的是,在 Safari 中嘗試相同的操作時也會出現問題。

如果您正在解析通過日、月、年的不同變量傳入的日期,並且日或月沒有前面的零(例如:01 vs 1),那么我建議這樣做: const momentFormat = { y: birthYear, m: birthMonth, d: birthDay }; return Moment(momentFormat).format('MMMM Do, YYYY'); const momentFormat = { y: birthYear, m: birthMonth, d: birthDay }; return Moment(momentFormat).format('MMMM Do, YYYY'); 這手動設置值,而不是依賴於正確格式化的每個值或必須編寫自定義代碼以確保日/月值在需要時具有 0。

暫無
暫無

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

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