复制代码代码如下 :
<! doctype html>
<html>
<헤드>
<title> DST 계산기 </title>
<script type = "text/javaScript">
함수 displayDStSwitchDates ()
{
var 년 = 새 날짜 (). getyear ();
if (year <1000)
년 += 1900;
var firstswitch = 0;
var secondswitch = 0;
var lastoffset = 99;
// 현재 연도의 매월 루프
for (i = 0; i <12; i ++)
{
// 한 달의 시간대 값을 가져 오십시오
var newdate = new 날짜 (date.utc (년, i, 0, 0, 0, 0, 0);
var tz = -1 * newDate.getTimezoneOffset () / 60;
// Timzezone이 변경되면 캡처합니다
if (tz> lastoffset)
FirstSwitch = I-1;
else if (tz <lastoffset)
SecondSwitch = I-1;
LastOffset = tz;
}
// 1 분 전에 날짜/시간이 발생합니다
// DST 조정이 발생합니다
var SecondDStDate = FindDStSwitchDate (Year, SecondSwitch);
var firstdstdate = finddstSwitchDate (Year, FirstSwitch);
if (firstdstdate == null && seconddstdate == null)
반품 '일광 절약은 시간대에 관찰되지 않습니다.';
또 다른
DST 변경이 시작되기 전 마지막 순간 ' +
Year + ':' + firstdstdate + '및' + seconddstdate;
}
함수 finddstswitchdate (연도, 월)
{
// 시작 날짜를 설정합니다
var 기반 = 새 날짜 (date.utc (연도, 월, 0, 0, 0, 0, 0));
var changeay = 0;
var changeminute = -1;
var baseOffset = -1 * basedate.gettimezoneOffset () / 60;
var dstdate;
// 정확한 날을 찾기 위해 루프 시간 조정이 발생합니다.
for (day = 0; day <50; day ++)
{
var tmpdate = 새 날짜 (date.utc (연도, 월, 일, 0, 0, 0, 0));
var tmpoffset = -1 * tmpdate.gettimezoneoffset () / 60;
// 시간대가 하루에서 다음 날로 바뀌 었는지 확인하십시오.
if (tmpoffset! = BaseOffSet)
{
var 분 = 0;
changeay = day;
// 언젠가 백업하고 오프셋을 잡습니다
tmpdate = 새 날짜 (date.utc (연도, 월, 1 일, 0, 0, 0, 0));
tmpoffset = -1 * tmpdate.gettimezoneoffset () / 60;
// 타임 존 틈이 발생할 때까지 분을 계산하십시오
while (changeminute == -1)
{
tmpdate = 새 날짜 (date.utc (연도, 월, 1 일, 0 일, 분, 0, 0);
tmpoffset = -1 * tmpdate.gettimezoneoffset () / 60;
// 시간대 변경 정확한 분을 결정합니다
// 발생합니다
if (tmpoffset! = BaseOffSet)
{
// 날짜/시간을 얻으려면 1 분 동안 백업합니다
// 시간대가 변경되기 전에
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;
}
}
}
</스크립트>
</head>
<body>
<script type = "text/javaScript">
document.write ( "현재 날짜 /시간 :" + new date () + "<br />");
document.write (displayDstSwitchDates ());
</스크립트>
</body>
</html>