Rumah >hujung hadapan web >tutorial js >Adakah Waktu Penjimatan Siang Berkuatkuasa? Mengesan DST Dengan Tepat dalam JavaScript.

Adakah Waktu Penjimatan Siang Berkuatkuasa? Mengesan DST Dengan Tepat dalam JavaScript.

DDD
DDDasal
2024-11-24 22:58:10771semak imbas

Is Daylight Saving Time in Effect? Detecting DST Accurately in JavaScript.

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!

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