根据地区不同显示时间的javascript代码

  by tingting

  <script language="JavaScript">

  <!-- Begin

  var timerRunning = false;

  var timezone = "格林尼治标准时间";

  var adjust = 0;

  function timeCheck(tzone, diff) {

  if (timerRunning) {

  clearTimeout(updatetime);

  timerRunning = false; }

  gmtOffset=eval(diff+adjust);

  timezone = tzone;

  checkDateTime();

  }

  function checkDateTime () {

  var today = new Date();

  var year = today.getYear() + 00;

  var month = today.getMonth()+1;

  var date = today.getDate();

  var day = today.getDay();

  var hour = today.getHours();

  var minute = today.getMinutes();

  var second = today.getSeconds();

  var lastSat = date - (day+1);

  while (lastSat < 32) lastSat+=7;

  if (lastSat > 31) lastSat+=-7;

  var firstSat = date - (day+1);

  while (firstSat > 0) firstSat+=-7;

  if (firstSat < 1) firstSat+=7;

  if ((((month == 4) && (date >= firstSat)) || month > 4) &&

  (month < 11 || ((month == 10) && day <= lastSat))) adjust += 60;

  yourOffset = (new Date()).getTimezoneOffset();

  yourOffset = yourOffset + adjust;

  var xx = navigator.appName

  var xy = navigator.appVersion;

  xy = xy.substring(0,1);

  if ((xy == 4) && (xx == "Netscape")) yourOffset = yourOffset+adjust;

  if ((((month == 4) && (date > 20)) || month > 4) && (month < 11 || ((month == 10) &&

  day < 30))) adjust -= 60;

  ourDifference = eval(gmtOffset - yourOffset);

  var half = eval(ourDifference % 60);

  ourDifference = Math.round(ourDifference / 60);

  hour = eval(hour - ourDifference);

  var m = new Array("",

  "1","2","3",

  "4","5","6",

  "7","8","9",

  "10","11","12");

  var leap = eval(year % 4);

  if ((half == -30) || (half == 30)) minute += 30;

  if (minute > 59) minute -= 60, hour++;

  if (minute < 0) minute += 60, hour--;

  if (hour > 23) hour -= 24, date += 1;

  if (((month == 4) || (month == 6) ||

  (month == 9) || (month == 11)) && (date==31)) date = 1, month ++;

  if (((month == 2) && (date > 28)) && (leap != 0)) date = 1, month ++;

  if ((month == 2) && (date > 29)) date = 1, month++;

  if (hour < 0) hour += 24, date --;

  if ((date == 32) && (month == 12)) month = m[1], date = 1, year++;

  if (date == 32) date = 1, month++;

  if ((date < 1) && (month == 1)) month= m[12], date = 31, year--;

  if (date < 1) date = 31, month --;

  if (((month == 4) || (month == 6) ||

  (month== 9) || (month == 11)) && (date == 31)) date = 30;

  if ((month == 2) && (date > 28)) date = 29;

  if (((month == 2) && (date > 28)) && (leap != 0)) date=28;

  for (i=1; i<13; i++) {

  if (month == i) {

  month = m; break;

  }

  }

  var dateTime = hour;

  dateTime = ((dateTime < 10) ? "0":"") + dateTime;

  dateTime = " " + dateTime;

  dateTime += ((minute < 10) ? ":0" : ":") + minute;

  dateTime += ((second < 10) ? ":0" : ":") + second;

  dateTime += (hour >= 12) ? "下午, " : "上午, ";

  dateTime += year + "年" + month + "月" + date + "日" ;

  document.clock.zonetime.value = dateTime;

  document.clock.zonename.value = timezone;

  updatetime=setTimeout("checkDateTime()", 900);

  timerRunning = true;

  }

  // End -->

  </script>

  <body OnLoad="timeCheck(timezone, 0)">

  <FORM name=clock>

  当前的时间<INPUT size=28 name=zonetime>

  <BR><BR>当前的地区<INPUT size=21 name=zonename> <BR><BR>

  <div style="background-color:#FF0000; width:100px; height:100px;" onmouseover="timeCheck('太平洋', +480)"></div>

  <div style="background-color:#FF00FF; width:100px; height:100px;" onmouseover="timeCheck('夏威夷', +600)"></div>

  </FORM>

  </body>