DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> JavaScript綜合知識 >> js獲得當前時區夏令時發生和終止的時間代碼
js獲得當前時區夏令時發生和終止的時間代碼
編輯:JavaScript綜合知識     

 這篇文章主要介紹了js獲得當前時區夏令時發生和終止的時間代碼,需要的朋友可以參考下

代碼如下: <!DOCTYPE html>  <html>  <head>  <title>DST Calculator</title>  <script type="text/javascript">    function DisplayDstSwitchDates()  {  var year = new Date().getYear();  if (year < 1000)  year += 1900;    var firstSwitch = 0;  var secondSwitch = 0;  var lastOffset = 99;    // Loop through every month of the current year  for (i = 0; i < 12; i++)  {  // Fetch the timezone value for the month  var newDate = new Date(Date.UTC(year, i, 0, 0, 0, 0, 0));  var tz = -1 * newDate.getTimezoneOffset() / 60;    // Capture when a timzezone change occurs  if (tz > lastOffset)  firstSwitch = i-1;  else if (tz < lastOffset)  secondSwitch = i-1;    lastOffset = tz;  }    // Go figure out date/time occurences a minute before  // a DST adjustment occurs  var secondDstDate = FindDstSwitchDate(year, secondSwitch);  var firstDstDate = FindDstSwitchDate(year, firstSwitch);    if (firstDstDate == null && secondDstDate == null)  return 'Daylight Savings is not observed in your timezone.';  else  return 'Last minute before DST change occurs in ' +  year + ': ' + firstDstDate + ' and ' + secondDstDate;  }    function FindDstSwitchDate(year, month)  {  // Set the starting date  var baseDate = new Date(Date.UTC(year, month, 0, 0, 0, 0, 0));  var changeDay = 0;  var changeMinute = -1;  var baseOffset = -1 * baseDate.getTimezoneOffset() / 60;  var dstDate;    // Loop to find the exact day a timezone adjust occurs  for (day = 0; day < 50; day++)  {  var tmpDate = new Date(Date.UTC(year, month, day, 0, 0, 0, 0));  var tmpOffset = -1 * tmpDate.getTimezoneOffset() / 60;    // Check if the timezone changed from one day to the next  if (tmpOffset != baseOffset)  {  var minutes = 0;  changeDay = day;    // Back-up one day and grap the offset  tmpDate = new Date(Date.UTC(year, month, day-1, 0, 0, 0, 0));  tmpOffset = -1 * tmpDate.getTimezoneOffset() / 60;    // Count the minutes until a timezone chnage occurs  while (changeMinute == -1)  {  tmpDate = new Date(Date.UTC(year, month, day-1, 0, minutes, 0, 0));  tmpOffset = -1 * tmpDate.getTimezoneOffset() / 60;    // Determine the exact minute a timezone change  // occurs  if (tmpOffset != baseOffset)  {  // Back-up a minute to get the date/time just  // before a timezone change occurs  tmpOffset = new Date(Date.UTC(year, month,  day-1, 0, minutes-1, 0, 0));  changeMinute = minutes;  break;  }  else  minutes++;  }    // Add a month (for display) since JavaScript counts  // months from 0 to 11  dstDate = tmpOffset.getMonth() + 1;    // Pad the month as needed  if (dstDate < 10) dstDate = "0" + dstDate;    // Add the day and year  dstDate += '/' + tmpOffset.getDate() + '/' + year + ' ';    // Capture the time stamp  tmpDate = new Date(Date.UTC(year, month,  day-1, 0, minutes-1, 0, 0));  dstDate += tmpDate.toTimeString().split(' ')[0];  return dstDate;  }  }  }    </script>  </head>  <body>  <script type="text/javascript">  document.write("Current date/time: " + new Date() + "<br />");  document.write(DisplayDstSwitchDates());  </script>  </body>  </html>     
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved