JSFiddle - React, Tailwind, and code Playground

by Sam88

JavaScript

//DST

var now = new Date();
var later = new Date();
var d1 = new Date();
var d2 = new Date();
// Date one is set to January 1st of this year
// Guaranteed not to be in DST for northern hemisphere,
// and guaranteed to be in DST for southern hemisphere
// (If DST exists on client PC)
d1.setDate(1);
d1.setMonth(1);
// Date two is set to July 1st of this year
// Guaranteed to be in DST for northern hemisphere,
// and guaranteed not to be in DST for southern hemisphere
// (If DST exists on client PC)
d2.setDate(1);
d2.setMonth(7);
// If time zone offsets match, no DST exists for this time zone
if (parseInt(d1.getTimezoneOffset(), 10) == parseInt(d2.getTimezoneOffset(), 10)) {
    alert("no DST");
}
// DST exists for this time zone – check if it is currently active
else {
    // Find out if we are on northern or southern hemisphere
    // Hemisphere is positive for northern, and negative for southern
    var hemisphere = parseInt(d1.getTimezoneOffset(), 10) - parseInt(d2.getTimezoneOffset(), 10);
    // Current date is still before or after DST, not containing DST
    if ((hemisphere > 0 && parseInt(d1.getTimezoneOffset(), 10) == parseInt(now.getTimezoneOffset(), 10)) || (hemisphere < 0 && parseInt(d2.getTimezoneOffset(), 10) == parseInt(now.getTimezoneOffset(), 10))) {
        alert("DST attivo");
    } // DST is active right now with the current date 
    else {
        alert("DST non attivo");
    }
}