Pengesanan DST dalam JavaScript: Menyemak Status untuk Manipulasi Tarikh Tepat
Dalam situasi di mana pengiraan masa yang tepat, seperti paparan masa atau manipulasi tarikh, adalah penting, adalah penting untuk mengambil kira Waktu Penjimatan Siang (DST). Pelarasan bermusim ini boleh memperkenalkan percanggahan dalam pengiraan masa jika tidak dipertimbangkan dengan segera.
Untuk menangani kebimbangan ini, coretan kod JavaScript telah dibangunkan yang menyemak sama ada DST berkuat kuasa pada masa tertentu. Logik teras bergantung pada fakta bahawa getTimezoneOffset mengembalikan nilai yang lebih tinggi semasa Waktu Standard berbanding DST. Dengan menentukan pengimbangan yang dijangkakan semasa Waktu Piawai dan membandingkannya dengan pengimbangan tarikh yang diberikan, seseorang boleh memastikan sama ada Waktu Piawai atau DST sedang dimainkan.
Perlu diperhatikan bahawa getTimezoneOffset mengembalikan nilai positif untuk zon waktu di barat UTC dan nilai negatif untuk kawasan timur UTC. Selain itu, ofset biasanya dinyatakan dalam jam, manakala getTimezoneOffset mengembalikan offset dalam beberapa minit. Sebagai contoh, Los Angeles ialah UTC-8j semasa Waktu Standard dan UTC-7j semasa DST. Pada bulan Disember, getTimezoneOffset akan menghasilkan 480 untuk Los Angeles (positif 480 minit).
Kod JavaScript berikut menghuraikan konsep ini:
Date.prototype.stdTimezoneOffset = function () { var jan = new Date(this.getFullYear(), 0, 1); var jul = new Date(this.getFullYear(), 6, 1); return Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset()); } Date.prototype.isDstObserved = function () { return this.getTimezoneOffset() < this.stdTimezoneOffset(); } var today = new Date(); if (today.isDstObserved()) { alert ("Daylight saving time!"); }
Kod ini menyemak sama ada DST berkuat kuasa pada masa ini pada perbezaan getTimezoneOffset antara tarikh yang diberikan dan jangkaan Masa Standard. Dengan menggunakan logik ini, pembangun boleh mengira tarikh dan masa dengan tepat sambil mengambil kira implikasi Waktu Penjimatan Siang.
Atas ialah kandungan terperinci Adakah Waktu Penjimatan Siang Berkuatkuasa? Mengesan DST Dengan Tepat dalam JavaScript.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!