function getMonthArray() { return new Array("January","February","March","April","May","June","July","August","September","October","November","December"); } function getMonthDays(year) { var monthDays = new Array("31","28","31","30","31","30","31","31","30","31","30","31"); if(year%4 == 0) { monthDays[1] = "29"; } if(year%100 == 0 && year%400 != 0) { monthDays[1] = "28"; } return monthDays; } function getGMTTime() { var time = new Date(); var gmtMS = time.getTime() + (time.getTimezoneOffset() * 60 * 1000); return new Date(gmtMS); } function getDateHour(zone, dst) { var gmtTime = getGMTTime(); var dateHour = new Array(); dateHour["day"] = gmtTime.getDate(); dateHour["month"] = gmtTime.getMonth(); dateHour["year"] = gmtTime.getYear(); dateHour["hour"] = gmtTime.getHours() + parseInt(zone); dateHour["min"] = parseInt(getMinutes()) + parseInt((zone - parseInt(zone)) * 60); dateHour["sec"] = getSeconds(); if(dst == true) { dateHour["hour"] += 1; } if(dateHour["min"] >= 60) { dateHour["min"] -= 60; dateHour["hour"] += 1; } if(dateHour["min"] < 0) { dateHour["min"] += 60; dateHour["hour"] -= 1; } var monthDays = getMonthDays(dateHour["year"]); if(dateHour["year"] < 1000) { dateHour["year"] += 1900; } if (dateHour["hour"] >= 24) { dateHour["hour"] = dateHour["hour"]-24; dateHour["day"] += 1; } if (dateHour["hour"] < 0) { dateHour["hour"] -= -24 dateHour["day"] -= 1 } if (dateHour["hour"] < 10) { dateHour["hour"] = " " + dateHour["hour"]; } if (dateHour["min"] < 10) { dateHour["min"] = "0" + dateHour["min"]; } if (dateHour["day"] <= 0) { if (dateHour["month"] == 0) { dateHour["month"] = 11; dateHour["year"] -= 1; } else { dateHour["month"] -= 1; } dateHour["day"] = monthDays[dateHour["month"]]; } if(dateHour["day"] > monthDays[dateHour["month"]]) { dateHour["day"] = 1; if(dateHour["month"] == 11) { dateHour["month"] = 0; dateHour["year"] += 1; } else { dateHour["month"] += 1; } } return dateHour } function getMinutes() { var min = getGMTTime().getMinutes() return ( (min < 10) ? "0" : "" ) + min ; } function getSeconds() { var sec = getGMTTime().getSeconds() return ( (sec < 10) ? "0" : "" ) + sec ; } function createNewDate(month, hours, date) { var newDate = new Date() newDate.setMonth(month) newDate.setHours(hours) newDate.setDate(date) return newDate } function dateTimeNonDST(day, month, year, hr, min, sec, dst) { var datetime = new Array() datetime["dst"] = (dst==true) ? 1 : 0; datetime["day"] = day datetime["month"] = month datetime["year"] = year datetime["hour"] = hr datetime["min"] = min datetime["sec"] = sec return datetime } function defaultTemplate(datetime) { var monthArray = getMonthArray() return monthArray[datetime["month"]] + " " + datetime["day"] + ", " + datetime["year"] + "
" + datetime["hour"] + ":" + datetime["min"] + ":" + datetime["sec"] + ( (datetime["dst"] == 1) ? " DST" : "" ) } function worldClock(zone, dst) { var dateHour = getDateHour(zone, dst) var day = dateHour["day"] var month = dateHour["month"] var year = dateHour["year"] var hr = dateHour["hour"] var min = dateHour["min"] var sec = dateHour["sec"] datetime = dateTimeNonDST(day, month, year, hr, min, sec, dst) return defaultTemplate(datetime) }