Saat membangun aplikasi web, kami biasanya mempertimbangkan dua jenis zona waktu. Yang paling umum adalah waktu server, yang bertindak sebagai referensi untuk pelacakan tanggal dan waktu, yang cukup mudah Show
Namun, ada beberapa contoh di mana kami perlu melacak tanggal dan waktu pengguna akhir. Dalam situasi ini, kita perlu merekam waktu dari browser pengguna menggunakan JavaScript. Selain itu, pengguna ini mungkin berasal dari zona waktu yang berbeda, dan menanganinya bisa jadi rumit Artikel ini akan membahas konsep yang relevan dengan zona waktu dan metode penanganannya menggunakan JavaScript Zona Waktu GMT, Offset, UTC Jam zona waktu yang berbeda
1. GMT — Referensi UniversalDunia dibagi menjadi zona waktu, masing-masing dengan offsetnya. Offset ini adalah jumlah menit yang ditambahkan ke waktu dunia untuk mendapatkan zona waktu masing-masing negara
Jika Anda berada di sebelah timur Greenwich Meridian, waktu setempat Anda biasanya lebih awal dari GMT (misalnya, waktu setempat di Tiongkok adalah GMT +8 jam). Sebaliknya, waktu setempat berada di belakang GMT di sebelah barat Meridian Greenwich (mis. g. waktu setempat di New York adalah GMT -5 jam di musim dingin dan GMT -4 jam di musim panas) 2. Offset — Perbedaan dari Referensi
Karena Daylight Saving Time, offset zona waktu mungkin berubah sepanjang tahun. Selain itu, undang-undang dapat mengubah jadwal offset atau penghematan siang hari zona waktu. Misalnya, saat kami menyatakan bahwa Indiana beralih dari Waktu Tengah ke Waktu Timur, zona waktu Indiana bergeser dari satu offset ke offset lainnya
2. UTC — Alternatif yang lebih baik untuk GMTBanyak orang secara keliru percaya bahwa GMT dan UTC adalah hal yang sama, sering digunakan secara bergantian. Tetapi bagaimana jika saya memberi tahu Anda bahwa mereka tidak sama? UTC dibuat pada tahun 1972 untuk mengatasi masalah perlambatan rotasi bumi. Frekuensi atom cesium digunakan untuk menetapkan standar waktu dalam sistem waktu ini berdasarkan Waktu Atom Internasional. Dengan kata lain, UTC adalah pengganti GMT yang lebih baik. Tapi, perbedaannya hampir tidak terlihat untuk perkembangan sehari-hari var d = new Date(); Menggunakan Pemrosesan Waktu Tanggal dengan JavaScript dalam Praktek JavaScript menyediakan objek Tanggal dengan berbagai metode untuk melakukan perhitungan terkait tanggal dan waktu. Namun, Anda memiliki pilihan untuk menggunakannya atau menggunakan pustaka yang lebih disempurnakan untuk melakukan pemrosesan waktu Tanggal dalam kode Anda. Pertama mari kita lihat apa yang kita dapatkan dengan objek tanggal JavaScript Operasi Tanggal Waktu — Menggunakan JavaScript Murni Objek Tanggal di JavaScript mengelola data waktu menggunakan angka absolut, seperti waktu Unix, secara internal. Konstruktor dan metode seperti Namun, penting untuk dicatat bahwa ini dipengaruhi oleh zona waktu lokal klien (tepatnya, zona waktu OS yang menjalankan browser). Akibatnya, menghasilkan objek Tanggal dari data input pengguna akan mewakili zona waktu lokal klien. Objek tanggal melacak waktu dalam UTC secara internal, tetapi biasanya menerima dan menampilkan data dalam waktu lokal komputer tempat ia berjalan
Namun, ada satu operasi yang dapat dilakukan objek tanggal dengan zona waktu non-lokal ISOString — Ini dapat mem-parsing teks yang berisi offset UTC numerik zona waktu mana pun. Objek Tanggal keluaran tidak menyimpan waktu dan offset lokal asli var d = new Date(); _Operasi Waktu Tanggal — Menggunakan Pustaka Pihak Ketiga Ada banyak perpustakaan di luar sana yang menyediakan berbagai fungsi pemformatan dan manipulasi tanggal. Kami dapat membagi pustaka ini menjadi dua jenis bergantung pada apakah mereka mendukung API Internasionalisasi ECMAScript atau tidak Perpustakaan berbasis Intl Pengembangan baru harus menggunakan salah satu penerapan zona waktu ini, yang menggunakan Intl API untuk datanya
Perpustakaan Non-Intl Pustaka ini selalu diperbarui, tetapi mereka bertanggung jawab untuk mengemas data zona waktu mereka, yang bisa sangat penting
Juga, penting untuk menghindari beberapa perpustakaan yang dihentikan untuk proyek baru Perpustakaan yang Dihentikan Perpustakaan ini telah dinonaktifkan dan tidak boleh digunakan lagi
Dari semua ini, saya yakin sebagian besar dari Anda sudah familiar dengan Momen, tetapi tim Momen sekarang merekomendasikan pengembangan di masa mendatang dengan Luxon Saat Anda mencoba menggunakan perpustakaan bawaan, rekomendasi saya adalah mencoba bekerja dengan dokumentasinya. Kemudian, setelah Anda memahami dasar-dasarnya, coba terapkan ke kode Anda Favorit Saya — Tanggal-fns Date-fns adalah perpustakaan kecil yang memiliki API sederhana dengan banyak fungsi kecil untuk dimainkan. Dengan hampir 140 fungsi, Date-fns dapat memiliki keuntungan sebagai berikut
Koleksi paket npm termasuk Date-fns. Anda dapat menginstal date-fns dengan perintah.
Anda perlu mengimpor fungsi yang Anda perlukan untuk mulai menguraikan dan menampilkan tanggal; . Mari kita tunjukkan tanggal saat ini saja //Import the function initially Bekerja dengan Zona WaktuUntuk bekerja dengan string tanggal UTC atau ISO, Date-fns mendukung data zona waktu. Ini akan memungkinkan Anda untuk menampilkan tanggal dan waktu dalam waktu lokal pengguna Anda. Tantangan datang saat bekerja dengan beberapa zona waktu. Mari kita lihat bagaimana kita dapat menangani situasi ini menggunakan sebuah contoh
2. UTC ke waktu zonasi Kesimpulan Beberapa perpustakaan dapat digunakan untuk bekerja dengan zona waktu. Mereka biasanya mengimplementasikan basis data zona waktu IANA standar dan menyediakan fungsi untuk menggunakannya dalam JavaScript, meskipun mereka tidak dapat membuat objek Tanggal berperilaku berbeda. Pustaka modern menggunakan data zona waktu Intl API, sedangkan pustaka yang lebih lama sering kali memiliki overhead, terutama jika dijalankan di peramban web, karena basis datanya mungkin agak besar Namun, jika Anda memilih perpustakaan untuk proyek baru, pilih salah satu yang mendukung Intl API, yang kemungkinan akan menjadi bukti masa depan. Kalau tidak, jika Anda hanya berurusan dengan beberapa operasi waktu Tanggal, menggunakan objek Tanggal asli juga baik-baik saja Saya harap artikel ini membantu Anda menentukan beberapa opsi untuk dipertimbangkan saat bekerja dengan zona waktu di JavaScript. Jika Anda memiliki saran lain, silakan berikan di komentar di bawah Terima kasih sudah membaca Bangun dengan komponen independen, untuk kecepatan dan skala Alih-alih membuat aplikasi monolitik, buat komponen independen terlebih dahulu dan susun menjadi fitur dan aplikasi. Itu membuat pengembangan lebih cepat dan membantu tim membangun aplikasi yang lebih konsisten dan dapat diskalakan Bagaimana cara mengatur waktu UTC dalam JavaScript?var sekarang = Tanggal baru(); . var utc = new Date(now. getTime() + sekarang. getTimezoneOffset() * 60000);
Bagaimana cara mendapatkan waktu UTC dalam JavaScript?Tanggal JavaScript getUTCDate()
.
Bagaimana cara memeriksa apakah tanggal adalah UTC JavaScript?var dt, utcTime; . UTC(tanggal. getFullYear(), dt. getMonth(), dt. . Anda mengusulkan untuk hanya menggunakan getTime tanpa mengubahnya menjadi UTC. . getTime mengembalikan milidetik sejak 1 Januari 1970 00. 00 UTC dari stempel waktu yang Anda miliki Bagaimana cara mengonversi zona waktu ke UTC dalam JavaScript?Menggunakan Metode toUTCString( ) dan toISOString( )
. Kami beruntung JavaScript menyediakan metode bawaan untuk mengubah tanggal menjadi UTC. |