复制代码代码如下:
<! Doctype html>
<html>
<голова>
<title> DST Calculator </title>
<script type = "text/javascript">
Функция DisplayDStSwitchDates ()
{
var Year = new Date (). getyear ();
if (год <1000)
Год += 1900;
var FirstSwitch = 0;
var secondswitch = 0;
var
// пройти через каждый месяц текущего года
для (i = 0; i <12; i ++)
{
// Принесите значение часового пояса за месяц
var newdate = новая дата (date.utc (год, I, 0, 0, 0, 0, 0));
var tz = -1 * newdate.gettimezoneoffset () / 60;
// захват, когда происходит изменение лимзезона
if (tz> Последний размер)
FirstSwitch = I-1;
иначе if (tz <thanoffset)
SecondSwitch = I-1;
Последний размер = tz;
}
// пойти выяснить дату/время за минуту до
// происходит регулировка DST
var SecondStDate = findDStSwitchDate (Год, SecondSwitch);
var FirstDStDate = findDStSwitchDate (Год, FirstSwitch);
if (firstdstdate == null && seconddStdate == null)
Возвращение «дневной сбережения не наблюдается в вашем часовом поясе»;
еще
Вернитесь в последнюю минуту до того, как изменение DST произойдет в ' +
Год + ':' + firstdstdate + 'и' + seconddStdate;
}
Function findStSwitchDate (год, месяц)
{
// Установить дату начала
var основан = новая дата (date.utc (год, месяц, 0, 0, 0, 0, 0));
var mediceay = 0;
var Changeminute = -1;
var baseOffset = -1 * basedate.gettimezoneoffset () / 60;
var dstdate;
// петля, чтобы найти точный день, адаптируется время по часовой зоны
для (день = 0; день <50; день ++)
{
var tmpdate = новая дата (date.utc (год, месяц, день, 0, 0, 0, 0));
var tmpoffset = -1 * tmpdate.gettimezoneoffset () / 60;
// Проверьте, изменился ли часовой пояс с одного дня на следующий
if (tmpoffset! = baseoffset)
{
var минут = 0;
изменен = день;
// резервное копирование на один день и схватить смещение
tmpdate = новая дата (date.utc (год, месяц, день-1, 0, 0, 0, 0));
tmpoffset = -1 * tmpdate.gettimezoneoffset () / 60;
// Считайте минуты, пока не произойдет часовой пост Chnage
while (Changeminute == -1)
{
tmpdate = новая дата (date.utc (год, месяц, день-1, 0, минуты, 0, 0));
tmpoffset = -1 * tmpdate.gettimezoneoffset () / 60;
// определить точную минуту смены часового пояса
// происходит
if (tmpoffset! = baseoffset)
{
// резервное копирование минуты, чтобы получить дату/время.
// прежде чем произойдет изменение часового пояса
tmpoffset = новая дата (date.utc (год, месяц,
День-1, 0, минуты-1, 0, 0));
Changeminute = минуты;
перерыв;
}
еще
минуты ++;
}
// Добавить месяц (для отображения) с момента подсчета JavaScript
// месяцы от 0 до 11
dstdate = tmpoffset.getmonth () + 1;
// подумать месяц по мере необходимости
if (dstdate <10) dstdate = "0" + dstdate;
// Добавить день и год
dstdate + = '/' + tmpoffset.getDate () + '/' + year + '';
// запечатлеть марки времени
tmpdate = новая дата (date.utc (год, месяц,
День-1, 0, минуты-1, 0, 0));
dstdate += tmpdate.totimestring (). split ('') [0];
вернуть dstdate;
}
}
}
</script>
</head>
<тело>
<script type = "text/javascript">
Document.Write («Текущая дата /время:» + new Date () + "<br />");
Document.Write (DisplayDStSwitchDates ());
</script>
</body>
</html>