复制代码代码如下:
<! doctype html>
<html>
<head>
<title> เครื่องคิดเลข DST </title>
<script type = "text/javascript">
ฟังก์ชั่น displaydstswitchdates ()
-
var year = new date (). getYear ();
ถ้า (ปี <1,000)
ปี += 1900;
var firstswitch = 0;
var secondswitch = 0;
var lastoffset = 99;
// วนซ้ำทุกเดือนของปีปัจจุบัน
สำหรับ (i = 0; i <12; i ++)
-
// ดึงค่าเขตเวลาสำหรับเดือน
var newDate = วันที่ใหม่ (date.utc (ปี, i, 0, 0, 0, 0, 0, 0));
var tz = -1 * newdate.gettimezoneoffset () / 60;
// จับภาพเมื่อมีการเปลี่ยนแปลง timzezone
if (tz> lastoffset)
FirstSwitch = I-1;
อื่นถ้า (tz <lastoffset)
SecondSwitch = I-1;
lastoffset = tz;
-
// ไปหาวันที่/เวลาเกิดขึ้นเมื่อนาทีก่อน
// การปรับ DST เกิดขึ้น
var secondDstdate = findDSTSWITCHDATE (ปี, SecondSwitch);
var firstdstdate = finddstswitchdate (ปี, firstswitch);
if (firstdstdate == null && secondDstdate == null)
กลับมา 'ออมแสงในเวลากลางวันไม่ได้สังเกตในเขตเวลาของคุณ';
อื่น
return 'นาทีสุดท้ายก่อนที่การเปลี่ยนแปลง DST จะเกิดขึ้นใน' +
ปี + ':' + firstdstdate + 'และ' + seconddstdate;
-
ฟังก์ชั่น finddstswitchdate (ปี, เดือน)
-
// ตั้งค่าวันที่เริ่มต้น
var asure = วันที่ใหม่ (date.utc (ปี, เดือน, 0, 0, 0, 0, 0, 0));
var dusturneay = 0;
var changeminute = -1;
var baseoffset = -1 * ague -ased.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 = วันที่ใหม่ (วันที่. utc (ปี, เดือน, วันที่ 1, 0, 0, 0, 0));
tmpoffset = -1 * tmpdate.gettimezoneoffset () / 60;
// นับนาทีจนกว่าจะมีเขตเวลา chnage เกิดขึ้น
ในขณะที่ (Changeminute == -1)
-
tmpdate = วันที่ใหม่ (วันที่. 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;
// pad เดือนตามต้องการ
if (dstdate <10) dstdate = "0" + dstdate;
// เพิ่มวันและปี
dstdate + = '/' + tmpoffset.getDate () + '/' + ปี + '';
// จับการประทับเวลา
tmpdate = วันที่ใหม่ (date.utc (ปี, เดือน,
วันที่ 1, 0, นาที -1, 0, 0));
dstdate += tmpdate.totimestring (). แยก ('') [0];
ส่งคืน dstdate;
-
-
-
</script>
</head>
<body>
<script type = "text/javascript">
document.write ("วันที่ /เวลาปัจจุบัน:" + วันที่ใหม่ () + "<br />");
document.write (displaydstswitchdates ());
</script>
</body>
</html>