复制代码代码如下::
<! DocType html>
<html>
<kopf>
<title> dst Taschenrechner </title>
<script type = "text/javaScript">
Funktion displayDstSwitchdates ()
{
var Jahr = neuer Datum (). getyear ();
if (Jahr <1000)
Jahr += 1900;
var FirstSwitch = 0;
var secondSwitch = 0;
var lastOffset = 99;
// jeden Monat des laufenden Jahres durchlaufen
für (i = 0; i <12; i ++)
{
// den Zeitzonwert für den Monat abrufen
var newdate = neues Datum (Datum.utc (Jahr, i, 0, 0, 0, 0, 0));
var tz = -1 * newdate.getTimezoneOffset () / 60;
// Erfassen Sie, wenn eine Timzezonänderung auftritt
if (Tz> lastOffset)
FirstSwitch = I-1;
sonst wenn (TZ <lastOffset)
SecondSwitch = I-1;
lastOffset = TZ;
}
// Gehen Sie aus, um Datum/Uhrzeiten eine Minute zuvor herauszufinden
// Eine DST -Einstellung tritt auf
var SeconddStDate = findDstSwitchDate (Jahr, Sekundenschalter);
var firstdstdate = findDstSwitchDate (Jahr, FirstSwitch);
if (firstdstDate == null && SecondDstDate == NULL)
Return 'Tageslichteinsparungen werden in Ihrer Zeitzone nicht beobachtet.';
anders
Return 'Last Minute, bevor die DST -Änderung in' + auftritt
Jahr + ':' + firstdstDate + 'und' + SeconddStdate;
}
Funktion finddstswitchdate (Jahr, Monat)
{
// Setzen Sie das Startdatum
var -basiertate = neues Datum (Datum.utc (Jahr, Monat, 0, 0, 0, 0, 0));
var mection = 0;
var changeminute = -1;
var baseOffset = -1 * basiertate.getTimezoneOffset () / 60;
var dstdate;
// Schleife, um den genauen Tag zu finden, an dem eine Zeitzone -Einstellung auftritt
für (Tag = 0; Tag <50; Tag ++)
{
var tmpdate = neues Datum (Datum.utc (Jahr, Monat, Tag, 0, 0, 0, 0));
var tmpoffset = -1 * tmpdate.getTimeZoneOffset () / 60;
// Überprüfen Sie, ob sich die Zeitzone von einem Tag zum nächsten geändert hat
if (tmpoffset! = baseOffset)
{
var Minuten = 0;
MALEDAY = DAY;
// Backup eines Tages und trage den Offset
tmpdate = neues Datum (Datum.utc (Jahr, Monat, Tag, 0, 0, 0, 0));
tmpoffset = -1 * tmpdate.getTimeZoneOffset () / 60;
// Zählen Sie die Minuten, bis eine Zeitzone -Chnage auftritt
während (Changeminute == -1)
{
tmpdate = neues Datum (Datum.utc (Jahr, Monat, Tag, 0, Minuten, 0, 0));
tmpoffset = -1 * tmpdate.getTimeZoneOffset () / 60;
// Bestimmen Sie die genaue Minute, in der eine Zeitzonänderung geändert wird
// tritt auf
if (tmpoffset! = baseOffset)
{
// Backup eine Minute, um das Datum/die Uhrzeit zu bekommen
// Bevor eine Zeitzonänderung auftritt
tmpoffset = neues Datum (Datum.utc (Jahr, Monat,
Tag 1, 0, Minuten-1, 0, 0));
Changeminute = Minuten;
brechen;
}
anders
Minuten ++;
}
// Fügen Sie einen Monat (für die Anzeige) hinzu, da JavaScript zählt
// Monate von 0 bis 11
dstdate = tmpoffset.getMonth () + 1;
// pad den Monat nach Bedarf
if (dstdate <10) dstdate = "0" + dstdate;
// Fügen Sie den Tag und das Jahr hinzu
dstdate + = '/' + tmpOffset.getDate () + '/' + Jahr + '';
// Erfassen Sie die Zeitstempel
tmpdate = neues Datum (Datum.utc (Jahr, Monat,
Tag 1, 0, Minuten-1, 0, 0));
dstdate += tmpdate.totimestring (). split ('') [0];
return dstdate;
}
}
}
</script>
</head>
<body>
<script type = "text/javaScript">
document.write ("aktuelles Datum /Uhrzeit:" + neues Datum () + "<br />");
document.write (displayDStSwitchdates ());
</script>
</body>
</html>