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
Lepaskan: 2024-11-30 15:01:15
asal
734 orang telah melayarinya

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);
Salin selepas log masuk

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();
    }
    Salin selepas log masuk

    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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan