Pengesanan DST dan Pengiraan Offset dalam JavaScript
Kod yang diberikan mengira perbezaan masa antara dua tarikh, membahagikannya kepada tahun, hari, jam, minit dan saat. Walau bagaimanapun, Daylight Saving Time (DST) boleh menyebabkan percanggahan. Artikel ini menyelidiki mekanisme untuk menentukan sama ada DST berkuat kuasa dan mengira offsetnya.
Menyemak DST
Kuncinya terletak pada kaedah getTimezoneOffset(). Ia mengembalikan nilai yang lebih besar semasa Masa Standard berbanding DST. Dengan menentukan pengimbang yang dijangkakan semasa Masa Piawai, kod tersebut membandingkannya dengan ofset untuk tarikh yang diberikan. Jika offset lebih kecil, ia menunjukkan DST.
getTimezoneOffset Considerations
Perhatikan bahawa getTimezoneOffset() mengembalikan nilai positif untuk zon waktu di barat UTC, yang biasanya diwakili sebagai waktu negatif (mis., Los Angeles: UTC–8j dalam Waktu Standard). Sebaliknya, ia mengembalikan nilai negatif untuk Hemisfera Timur (mis., Sydney: UTC 10j pada musim sejuk).
Contoh Kod
Untuk melanjutkan Tarikh dengan fungsi DST:
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(); }
Penggunaan:
var today = new Date(); if (today.isDstObserved()) { alert ("Daylight saving time!"); }
Oleh menggabungkan fungsi ini, kod anda boleh mengira perbezaan masa dengan tepat, walaupun semasa peralihan DST.
Atas ialah kandungan terperinci Adakah Waktu Penjimatan Siang Berkuatkuasa? Pendekatan JavaScript untuk Mengesan dan Mengira DST Offset.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!