复制代码代码如下:
<! Doctype html>
<Html>
<head>
<Title> DST Calculator </iteme>
<type skrip = "Teks/JavaScript">
function displaydstswitchdates ()
{
var tahun = tanggal baru (). getYear ();
if (tahun <1000)
Tahun += 1900;
var firstswitch = 0;
var secondswitch = 0;
var lastoffset = 99;
// Lingkarkan setiap bulan tahun berjalan
untuk (i = 0; i <12; i ++)
{
// Ambil nilai zona waktu untuk bulan ini
var newDate = tanggal baru (date.utc (tahun, i, 0, 0, 0, 0, 0));
var tz = -1 * newDate.getTimezoneOffset () / 60;
// Tangkap saat perubahan zona waktu terjadi
if (tz> lastoffset)
firstswitch = i-1;
lain jika (tz <lastoffset)
SecondSwitch = I-1;
LastOffset = TZ;
}
// mencari tahu tanggal/waktu kejadian satu menit sebelumnya
// Penyesuaian DST terjadi
var SecondDstDate = findDstswitchDate (tahun, SecondSwitch);
var firstdstdate = findDstswitchDate (tahun, firstswitch);
if (firstdstdate == null && secondDstdate == null)
Return 'Daylight Savings tidak diamati di zona waktu Anda.';
kalau tidak
Kembalikan 'menit terakhir sebelum perubahan DST terjadi di' +
tahun + ':' + firstdstdate + 'dan' + detik;
}
fungsi finddstswitchdate (tahun, bulan)
{
// Atur tanggal mulai
var mendasarkan = tanggal baru (date.utc (tahun, bulan, 0, 0, 0, 0, 0));
var changeday = 0;
var changeminute = -1;
var bumoChset = -1 * mendasarkan.getTimezoneOffset () / 60;
var dstdate;
// Loop untuk menemukan hari yang tepat suatu waktu penyesuaian waktu terjadi
untuk (hari = 0; hari <50; hari ++)
{
var tmpDate = tanggal baru (date.utc (tahun, bulan, hari, 0, 0, 0, 0));
var tmpoffset = -1 * tmpDate.getTimeZoneOffset () / 60;
// Periksa apakah zona waktu berubah dari satu hari ke hari berikutnya
if (tmpoffset! = Basis Basis)
{
var menit = 0;
perubahan = hari;
// Back-up suatu hari dan grap offset
tmpDate = tanggal baru (date.utc (tahun, bulan, hari-1, 0, 0, 0, 0));
tmpoffset = -1 * tmpDate.getTimeZoneOffset () / 60;
// Hitung menit sampai terjadi chnage zona waktu
while (changeminute == -1)
{
tmpDate = tanggal baru (tanggal.Utc (tahun, bulan, hari-1, 0, menit, 0, 0));
tmpoffset = -1 * tmpDate.getTimeZoneOffset () / 60;
// Tentukan menit yang tepat perubahan zona waktu
// terjadi
if (tmpoffset! = Basis Basis)
{
// cadangan satu menit untuk mendapatkan tanggal/waktu saja
// sebelum perubahan zona waktu terjadi
tmpoffset = tanggal baru (date.utc (tahun, bulan,
hari-1, 0, menit-1, 0, 0));
changeminute = menit;
merusak;
}
kalau tidak
menit ++;
}
// Tambahkan sebulan (untuk tampilan) karena JavaScript menghitung
// bulan dari 0 hingga 11
dstDate = tmpoffset.getMonth () + 1;
// Pad bulan sesuai kebutuhan
if (dstdate <10) dstdate = "0" + dstDate;
// tambahkan hari dan tahun
dstdate + = '/' + tmpoffset.getDate () + '/' + tahun + '';
// Tangkap cap waktu
tmpDate = tanggal baru (date.utc (tahun, bulan,
hari-1, 0, menit-1, 0, 0));
dstdate += tmpDate.toTimestring (). split ('') [0];
mengembalikan dstdate;
}
}
}
</script>
</head>
<body>
<type skrip = "Teks/JavaScript">
Document.write ("Tanggal /Waktu Saat Ini:" + Tanggal Baru () + "<br />");
document.write (displaydstswitchdates ());
</script>
</body>
</html>