Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mengakaunkan Waktu Penjimatan Siang dalam Pengiraan Masa JavaScript?

Bagaimanakah Saya Boleh Mengakaunkan Waktu Penjimatan Siang dalam Pengiraan Masa JavaScript?

Susan Sarandon
Susan Sarandonasal
2024-11-30 15:01:15731semak imbas

How Can I Account for Daylight Saving Time in JavaScript Time Calculations?

Menentukan Waktu Penjimatan Siang (DST) dalam JavaScript

Apabila mengira perbezaan masa, adalah penting untuk mengambil kira Waktu Penjimatan Siang (DST), yang boleh mengakibatkan percanggahan jika tidak dipertimbangkan dengan betul. Dalam coretan kod ini:

var secDiff = Math.abs(Math.round((utc_date-this.premiere_date)/1000));
this.years = this.calculateUnit(secDiff,(86400*365));
this.days = this.calculateUnit(secDiff-(this.years*(86400*365)),86400);
this.hours = this.calculateUnit((secDiff-(this.years*(86400*365))-(this.days*86400)),3600);
this.minutes = this.calculateUnit((secDiff-(this.years*(86400*365))-(this.days*86400)-(this.hours*3600)),60);
this.seconds = this.calculateUnit((secDiff-(this.years*(86400*365))-(this.days*86400)-(this.hours*3600)-(this.minutes*60)),1);

DST boleh menyebabkan salah pengiraan dalam perbezaan masa. Untuk menangani perkara ini, pertimbangkan untuk menggunakan langkah berikut:

  1. Semak sama ada DST berkuat kuasa:

    • Buat dua objek Tarikh, satu untuk 1 Januari dan satu untuk 1 Julai tahun semasa.
    • Kira zon waktu offset untuk kedua-dua tarikh menggunakan getTimezoneOffset().
    • Bandingkan ofset: jika ofset Januari lebih besar daripada ofset Julai, DST berkuat kuasa.
  2. Laksanakan isDstObserved() fungsi:

    Date.prototype.isDstObserved = function () {
        return this.getTimezoneOffset() < this.stdTimezoneOffset();
    }

    Fungsi ini menyemak sama ada zon waktu offset untuk tarikh tertentu adalah kurang daripada ofset zon waktu standardnya, menunjukkan bahawa DST berkuat kuasa.

  3. Sahkan status DST:

    • Buat objek Tarikh untuk tarikh/masa semasa.
    • Panggil fungsi isDstObserved() pada Tarikh objek untuk menentukan sama ada DST aktif.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakaunkan Waktu Penjimatan Siang dalam Pengiraan Masa 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