簡體   English   中英

如何在 react-native 中使用 new Date() 將 GMT 時間轉換為 AM/PM?

[英]How to convert GMT time using new Date() to AM/PM in react-native?

我正在一個 react-native 項目中工作並使用 moment 庫。 我在將時間(格林威治標准時間 5:30 IST)轉換為 AM/PM 時遇到問題。 它增加了當地當前時間 5:30 小時。 例如。 從數據庫時間下午 3:00 開始。 從 new Date() => 傳遞后,時間將轉換為Wed Jun 23 2021 15:00:00 GMT+0530 (印度標准時間)以及我需要的字段。 當我需要時再次將此格林威治標准時間轉換為上午/下午時。 它顯示 8:30PM 而不是 3:00PM。

這是代碼:

var scheduledDeparture = Wed Jun 23 2021 15:00:00 GMT+0530 (India Standard Time)
scheduledDeparture_Time: new Date(ScheduledDeparture), 
let finalTime = moment.utc(leavedata.scheduledDeparture_Time).format('hh:mm a').replace(/GMT.*/g,"")
console.log("finalTime ",finalTime). // 08:30PM

為什么 GMT 時間在當前時間增加 5:30 以及如何克服它?

您需要包含moment-timezone ,然后您可以使用utcOffset方法執行以下操作

let str = '2021-06-23T15:40+01:00';
let date = moment(str).utcOffset(str)
console.log(date.format('DD/MM/YYYY HH:mm'))

如果您正在使用Date對象,則可以執行以下操作:

 let scheduledDeparture_Time = new Date()
 console.log(scheduledDeparture_Time.toString(), scheduledDeparture_Time.toGMTString())
 let dt2 = moment(scheduledDeparture_Time)
  console.log(dt2.format('DD/MM/YYYY HH:mm'))

如果您有指定的字符串,並且無論時區如何都需要保留時間,那么只需使用substring然后應用moment

 let scheduledDeparture ='Wed Jun 23 2021 15:00:00 GMT+0530 (India Standard Time)'
 let scheduledDeparture_Time = new Date(scheduledDeparture.substring(0, 24))
 let dt2 = moment(scheduledDeparture_Time)
  console.log(dt2.format('DD/MM/YYYY HH:mm'))

小提琴

暫無
暫無

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

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