Convert Local Time

by Laurie

HTML

<div id="ny">New York: <span id="nytime"></span></div>
<div id="chi">Chicago: <span id="chitime"></span></div>
<div id="pas">Pasadena: <span id="pastime"></span></div>
<div id="tok">Tokyo: <span id="toktime"></span></div>

<p> <span id="dst">not</span>dst </p>

CSS

div{
    margin:10px
}

JavaScript

// function to calculate local time
// in a different city
// given the city's UTC offset
function calcTime(offset) {
//function calcTime(city, offset) {

    // create Date object for current location
    d = new Date();
    
    //set options
    var options = { weekday: "short", year: "numeric", month: "short",
                   day: "numeric", hour: "numeric", minute: "numeric"  };
    
    // convert to msec
    // add local time zone offset 
    // get UTC time in msec
    utc = d.getTime() + (d.getTimezoneOffset() * 60000);
    
    // create new Date object for different city
    // using supplied offset
    nd = new Date(utc + (3600000*offset));
    
    // return time as a string
    //return "The local time in " + city + " is " + nd.toLocaleString();
    //return nd.toLocaleString();
    return nd.toLocaleString("en-US", options);
    
}

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.dst = function() {
return this.getTimezoneOffset() < this.stdTimezoneOffset();
}
var today = new Date();
if (today.dst()) document.getElementById('dst').innerHTML = '';

//in dst (summer)
if (today.dst()) {
    document.getElementById("nytime").innerHTML = calcTime('-4') + ' EDT';
document.getElementById("chitime").innerHTML = calcTime('-6');
document.getElementById("pastime").innerHTML = calcTime('-8');
document.getElementById("toktime").innerHTML = calcTime('+9');

//not in dst (winter)
} else {
    document.getElementById("nytime").innerHTML = calcTime('-5') + ' EST';
document.getElementById("chitime").innerHTML = calcTime('-7');
document.getElementById("pastime").innerHTML = calcTime('-9');
document.getElementById("toktime").innerHTML = calcTime('+9');
}



  



// get Bombay time
//alert(calcTime('Bombay', '+5.5'));

// get Singapore time
//alert(calcTime('Singapore', '+8'));

// get London...