Rumah  >  Artikel  >  hujung hadapan web  >  Masalah zon waktu pada react-native-paper-date (y-off)

Masalah zon waktu pada react-native-paper-date (y-off)

WBOY
WBOYasal
2024-07-18 08:15:15960semak imbas

A timezone problem on react-native-paper-date (y-off)

Masalah hari ini ialah saya menghadapi masalah menggunakan tarikh react-native-paper-dates dan hari bekerja yang dipaparkan pada Modal Kalendar adalah tidak betul. Ia dimatikan selama 1 hari, contohnya hari ini 15 Julai 2024 dan 15 sepatutnya muncul pada lajur Isnin tetapi sebaliknya pada lajur Ahad.

Akhirnya saya mendapati bahawa masalah itu ada kaitan dengan Intl.DateTimeFormat kerana saya telah cuba menjalankan kod di bawah pada 2 persekitaran; saya dan masa jalan Javascript di Mozilla.dev (saya tahu ia sangat mengarut tetapi saya cuba lol).

console.log(Intl.DateTimeFormat().resolvedOptions().timeZone);
//"UTC" on my local development env
//"Asia/Phnom_Penh" on Mozilla.dev

Sekarang saya mendapat petunjuk, jadi saya merengek kepada rakan sekerja saya dan dia menyebut bahawa Intl Javascript tidak stabil untuk apl kami. Jadi dia menghantar saya pautan formatjs ini di sini yang menyebut Enjin Javascript tidak mendedahkan zon waktu lalai jadi tiada cara untuk mendapatkan zon waktu lalai daripadanya; dan apl asli React kami menggunakan Enjin Hermes, yang saya anggap ia tidak mendedahkan apa-apa tentang zon waktu kepada Antarabangsa Javascript jadi itulah sebabnya ia sentiasa lalai kepada "UTC" apabila saya cuba menjalankan console.log(Intl .DateTimeFormat().resolvedOptions().timeZone) .

Sekarang saya mendapat jawapan saya; Saya hanya mencuba kod di bawah dan isu itu telah diselesaikan. Dengan mempunyai zon waktu yang betul, hari bekerja kini betul pada setiap lajur pada Modal Kalendar.

import '@formatjs/intl-datetimeformat/polyfill'
import '@formatjs/intl-datetimeformat/add-all-tz.js'

//If this statement doesn't work, use expo-localization's getCalendar()
const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone

//For my case, I have to use expo-localization
const timezone = Localization.getCalendars()[0].timezone

if ('__setDefaultTimeZone' in Intl.DateTimeFormat) {
  Intl.DateTimeFormat.__setDefaultTimeZone('America/Los_Angeles')
}

Atas ialah kandungan terperinci Masalah zon waktu pada react-native-paper-date (y-off). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn