Saya tahu cara mengimbangi zona waktu, tetapi yang saya butuhkan adalah kemampuan untuk mendeteksi sesuatu seperti "Amerika / New York". Apakah itu mungkin dari JavaScript atau apakah itu sesuatu yang harus saya beri guestimate berdasarkan offset?
javascript
timezone
Mike Thomsen
sumber
sumber
Jawaban:
The Internasionalisasi API mendukung mendapatkan zona waktu pengguna, dan didukung di semua browser saat ini.
Perlu diingat bahwa pada beberapa versi browser lama yang mendukung Internationalization API,
timeZone
properti disetel keundefined
daripada string zona waktu pengguna. Sejauh yang saya tahu, pada saat penulisan (Juli 2017) semua browser saat ini kecuali IE11 akan mengembalikan zona waktu pengguna sebagai string.sumber
Jawaban yang paling banyak disukai mungkin adalah cara terbaik untuk mendapatkan zona waktu, namun,
Intl.DateTimeFormat().resolvedOptions().timeZone
mengembalikan nama zona waktu IANA menurut definisi, dalam bahasa Inggris.Jika Anda ingin nama zona waktu dalam bahasa pengguna saat ini, Anda dapat menguraikannya dari
Date
representasi string seperti:Diuji di Chrome dan Firefox.
Tentu saja, ini tidak akan berfungsi sebagaimana mestinya di beberapa lingkungan. Misalnya, node.js mengembalikan offset GMT (misalnya
GMT+07:00
) sebagai ganti nama. Tapi saya pikir itu masih bisa dibaca sebagai fallback.PS Tidak akan berfungsi di IE11, hanya sebagai
Intl...
solusinya.sumber
Anda dapat menggunakan skrip ini. http://pellepim.bitbucket.org/jstz/
Fork atau clone repository di sini. https://bitbucket.org/pellepim/jstimezonedetect
Setelah Anda memasukkan skrip, Anda bisa mendapatkan daftar zona waktu dalam
jstz.olson.timezones
variabel - .Dan kode berikut digunakan untuk menentukan zona waktu browser klien.
Selamat menikmati jstz!
sumber
Ambil zona waktu menurut nama (yaitu "Amerika / New York")
sumber
Intl.DateTimeFormat().resolvedOptions().timeZone
Intl.DateTimeFormat().resolvedOptions().timeZone
memberikan kembaliundefined
, tetapimoment.tz.guess()
mengembalikan nilai yang benarAnda cukup menulis kode Anda sendiri dengan menggunakan tabel pemetaan di sini: http://www.timeanddate.com/time/zones/
atau, gunakan pustaka zona waktu: http://momentjs.com/timezone/docs/
Lihat
zone.name; // America/Los_Angeles
atau, perpustakaan ini: https://github.com/Canop/tzdetect.js
sumber
Ini mendapatkan kode zona waktu (mis.,
GMT
) Di javascript lama (Saya menggunakan skrip aplikasi google dengan mesin lama):Saya hanya meletakkan ini di sini jika seseorang membutuhkannya.
sumber
UTC
/GMT
. Sepertinya orang lain dibilang; misPacific Daylight Time
. , .Coba kode ini merujuk dari sini
sumber
Dalam javascript, metode Date.getTimezoneOffset () mengembalikan offset zona waktu dari UTC, dalam menit, untuk lokal saat ini.
Zona waktu akan menjadi alat yang berguna. http://momentjs.com/timezone/
Ubah Tanggal Antar Zona Waktu
sumber