﻿function TimeZoneOffset() {

    // tzoffset = (new Date().getTimezoneOffset()/60) * (-1);
    var dtDate = new Date('1/1/' + (new Date()).getUTCFullYear());
    var intOffset = 100;
    var intMonth, intHoursUtc, intHours, intDaysMultiplyBy;

    for (intMonth = 0; intMonth < 12; intMonth++) {
        
        // Go to the next month.
        dtDate.setUTCMonth(dtDate.getUTCMonth() + 1);
        
        // To ignore daylight saving time look for the lowest offset.
        // Since during DST the clock moves forward, it'll be a bigger number.
        if (intOffset > (dtDate.getTimezoneOffset() * (-1))) {
            intOffset = (dtDate.getTimezoneOffset() * (-1));
        }
    }

    // Now determine if we are in DST or not
    var rightNow = new Date();
    var date1 = new Date(rightNow.getFullYear(), 0, 1, 0, 0, 0, 0);
    var date2 = new Date(rightNow.getFullYear(), 6, 1, 0, 0, 0, 0);
    var temp = date1.toGMTString();
    var date3 = new Date(temp.substring(0, temp.lastIndexOf(" ") - 1));
    var temp = date2.toGMTString();
    var date4 = new Date(temp.substring(0, temp.lastIndexOf(" ") - 1));
    var hoursDiffStdTime = (date1 - date3) / (1000 * 60 * 60);
    var hoursDiffDaylightTime = (date2 - date4) / (1000 * 60 * 60);
    // if (hoursDiffDaylightTime != hoursDiffStdTime) {
    //     intOffset += (hoursDiffStdTime - hoursDiffDaylightTime) * 60;
    // }
 
    return intOffset;
}
