复制代码代码如下:
<! doctype html>
<html>
<head>
<title> حاسبة DST </title>
<script type = "text/javaScript">
وظيفة displaydstswitchdates ()
{
var year = new date (). getyear () ؛
إذا (السنة <1000)
سنة += 1900 ؛
var forsswitch = 0 ؛
var secondswitch = 0 ؛
var lastoffset = 99 ؛
// حلقة خلال كل شهر من العام الحالي
لـ (i = 0 ؛ i <12 ؛ i ++)
{
// جلب قيمة المنطقة الزمنية لهذا الشهر
var newdate = date new (date.UTC (year ، i ، 0 ، 0 ، 0 ، 0 ، 0)) ؛
var tz = -1 * newDate.getTimeZoneOffset () / 60 ؛
// التقاط عند حدوث تغيير timzezone
إذا (tz> lastoffset)
firstswitch = i-1 ؛
آخر إذا (tz <lastoffset)
SecondSwitch = I-1 ؛
lastOffset = tz ؛
}
//اذهب اكتشف التاريخ/الوقت في دقيقة واحدة قبل دقيقة
// يحدث تعديل DST
var secondDstdate = findDstswitchDate (السنة ، الثانية) ؛
var firstdstdate = findDstswitchDate (السنة ، FirstSwitch) ؛
if (firstdstdate == null && seconddstdate == null)
إرجاع "التوفير الصيفي لم يلاحظ في منطقة الزمن الخاصة بك." ؛
آخر
العودة "في اللحظة الأخيرة قبل حدوث تغيير DST في" +
السنة + ':' + firstdstdate + 'و' + secondDstdate ؛
}
وظيفة FindDstswitchdate (سنة ، شهر)
{
// اضبط تاريخ البدء
var reparate = date new (date.utc (year ، month ، 0 ، 0 ، 0 ، 0 ، 0)) ؛
var changeay = 0 ؛
var changeminute = -1 ؛
var baseoffset = -1 * reistrime.gettimezoneoffset () / 60 ؛
var dstdate ؛
// حلقة للعثور على اليوم الدقيق تحدث ضبط المنطقة الزمنية
لـ (اليوم = 0 ؛ اليوم <50 ؛ اليوم ++)
{
var tmpdate = تاريخ جديد (Date.UTC (السنة ، الشهر ، اليوم ، 0 ، 0 ، 0 ، 0)) ؛
var tmpoffset = -1 * tmpdate.gettimezoneoffset () / 60 ؛
// تحقق مما إذا كانت المنطقة الزمنية قد تغيرت من يوم إلى آخر
إذا (tmpoffset! = basoffset)
{
var دقيقة = 0 ؛
تم تغييره = اليوم ؛
// النسخ الاحتياطي في يوم من الأيام وابتعاد الإزاحة
TMPDate = تاريخ جديد (Date.UTC (السنة ، الشهر ، اليوم 1 ، 0 ، 0 ، 0 ، 0)) ؛
tmpoffset = -1 * tmpdate.gettimezoneoffset () / 60 ؛
// عد الدقائق حتى يحدث تشانج في المنطقة الزمنية
بينما (changeminute == -1)
{
TMPDate = تاريخ جديد (Date.UTC (السنة ، الشهر ، اليوم 1 ، 0 ، دقائق ، 0 ، 0)) ؛
tmpoffset = -1 * tmpdate.gettimezoneoffset () / 60 ؛
// تحديد الدقيقة الدقيقة في تغيير المنطقة الزمنية
// يحدث
إذا (tmpoffset! = basoffset)
{
// النسخ الاحتياطي لمدة دقيقة للحصول على التاريخ/الوقت فقط
// قبل حدوث تغيير في المنطقة الزمنية
tmpoffset = تاريخ جديد (Date.UTC (السنة ، الشهر ،
اليوم الأول ، 0 ، دقائق 1 ، 0 ، 0)) ؛
changminute = دقائق ؛
استراحة؛
}
آخر
دقائق ++ ؛
}
// أضف شهرًا (للعرض) منذ تعداد JavaScript
// أشهر من 0 إلى 11
dStDate = tmpoffset.getMonth () + 1 ؛
// pad الشهر حسب الحاجة
if (dstdate <10) dstdate = "0" + dstdate ؛
// أضف اليوم والسنة
dStDate + = '/' + tmpoffset.getDate () + '/' + year + '' ؛
// التقاط الطوابع الزمنية
TMPDATE = تاريخ جديد (DATE.UTC (السنة ، الشهر ،
اليوم الأول ، 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>