Skip to content

Instantly share code, notes, and snippets.

@somebox
Created November 21, 2010 22:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save somebox/709234 to your computer and use it in GitHub Desktop.
Save somebox/709234 to your computer and use it in GitHub Desktop.
Get the user's timezone
// script by Josh Fraser (http://www.onlineaspect.com)
// modded by Jeremy Seitz to only return offset as integer
function calculate_time_zone() {
var rightNow = new Date();
var jan1 = new Date(rightNow.getFullYear(), 0, 1, 0, 0, 0, 0); // jan 1st
var june1 = new Date(rightNow.getFullYear(), 6, 1, 0, 0, 0, 0); // june 1st
var temp = jan1.toGMTString();
var jan2 = new Date(temp.substring(0, temp.lastIndexOf(" ")-1));
temp = june1.toGMTString();
var june2 = new Date(temp.substring(0, temp.lastIndexOf(" ")-1));
var std_time_offset = (jan1 - jan2) / (1000 * 60 * 60);
var daylight_time_offset = (june1 - june2) / (1000 * 60 * 60);
var dst;
if (std_time_offset == daylight_time_offset) {
dst = 0; // daylight savings time is NOT observed
} else {
// positive is southern, negative is northern hemisphere
var hemisphere = std_time_offset - daylight_time_offset;
if (hemisphere >= 0)
std_time_offset = daylight_time_offset;
dst = 1; // daylight savings time is observed
}
var i;
return std_time_offset + dst;
}
@mlc
Copy link

mlc commented Nov 21, 2010

or, um:

var offset = -(new Date().getTimezoneOffset()) / 60.0;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment