复制代码代码如下:
<!doctype html>
<html>
<head>
<title> dst calculator </title>
<script type = "text/javascript">
関数displaydstswitchdates()
{
var year = new date()。getYear();
if(年<1000)
年 += 1900;
var firstswitch = 0;
var secondswitch = 0;
var lastOffset = 99;
//今年度の毎月をループします
for(i = 0; i <12; i ++)
{
//月のタイムゾーン値を取得します
var newdate = new date(date.utc(year、i、0、0、0、0、0));
var tz = -1 * newdate.getTimeZoneOffset() / 60;
//ティムゼゾーネの変更が発生したときにキャプチャします
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 basedate = new date(date.utc(year、month、0、0、0、0、0));
var chanderay = 0;
var changeminute = -1;
var baseOffset = -1 * beaseTate.getTimeZoneOffset() / 60;
var dstdate;
//タイムゾーン調整が発生する正確な日を見つけるためにループ
for(day = 0; day <50; day ++)
{
var tmpdate = new date(date.utc(year、month、day、day、0、0、0、0));
var tmpoffset = -1 * tmpdate.getTimeZoneOffset() / 60;
//タイムゾーンがある日から次の日に変更されたかどうかを確認します
if(tmpoffset!= baseOffset)
{
var minutes = 0;
chanderay = day;
//ある日バックアップして、オフセットをグラップします
tmpdate = new date(date.utc(year、month、day-1、0、0、0、0));
tmpoffset = -1 * tmpdate.getTimeZoneOffset() / 60;
// TimeZone Chnageが発生するまで議事録をカウントします
while(changeminute == -1)
{
tmpdate = new Date(date.utc(year、month、day-1、0、minutes、0、0));
tmpoffset = -1 * tmpdate.getTimeZoneOffset() / 60;
//タイムゾーンの変更の正確な分を決定します
//発生します
if(tmpoffset!= baseOffset)
{
//バックアップして日付/時刻を取得します
//タイムゾーンの変更が発生する前
tmpoffset = new date(date.utc(year、month、
1日目、0、分-1、0、0));
changeminute = minutes;
壊す;
}
それ以外
議事録++;
}
// JavaScriptがカウントされるため、1か月(表示用)を追加します
// 0〜11までの月
dstdate = tmpoffset.getMonth() + 1;
//必要に応じて月をパッドします
if(dstdate <10)dstdate = "0" + dstdate;
//日と年を追加します
dstdate + = '/' + tmpoffset.getDate() + '/' + year + '';
//タイムスタンプをキャプチャします
tmpdate = new date(date.utc(year、month、
1日目、0、分-1、0、0));
dstdate += tmpdate.totimestring()。split( '')[0];
dstdateを返します。
}
}
}
</script>
</head>
<body>
<script type = "text/javascript">
document.write( "現在の日付 /時間:" + new date() + "<br />");
document.write(displaydstswitchdates());
</script>
</body>
</html>