最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

js获得当前时区夏令时发生和终止的时间代码_javascript技巧

来源:动视网 责编:小采 时间:2020-11-27 21:20:05
文档

js获得当前时区夏令时发生和终止的时间代码_javascript技巧

js获得当前时区夏令时发生和终止的时间代码_javascript技巧: 代码如下: DST Calculator function DisplayDstSwitchDates() { var year = new Date().getYear(); if (year year += 1900; var firstSwitch = 0; var secondSwitch = 0; var lastOffset = 9
推荐度:
导读js获得当前时区夏令时发生和终止的时间代码_javascript技巧: 代码如下: DST Calculator function DisplayDstSwitchDates() { var year = new Date().getYear(); if (year year += 1900; var firstSwitch = 0; var secondSwitch = 0; var lastOffset = 9


代码如下:



DST Calculator

function DisplayDstSwitchDates()
{
var year = new Date().getYear();
if (year < 1000)
year += 1900;

var firstSwitch = 0;
var secondSwitch = 0;
var lastOffset = 99;

// Loop through every month of the current year
for (i = 0; i < 12; i++)
{
// Fetch the timezone value for the month
var newDate = new Date(Date.UTC(year, i, 0, 0, 0, 0, 0));
var tz = -1 * newDate.getTimezoneOffset() / 60;

// Capture when a timzezone change occurs
if (tz > lastOffset)
firstSwitch = i-1;
else if (tz < lastOffset)
secondSwitch = i-1;

lastOffset = tz;
}

// Go figure out date/time occurences a minute before
// a DST adjustment occurs
var secondDstDate = FindDstSwitchDate(year, secondSwitch);
var firstDstDate = FindDstSwitchDate(year, firstSwitch);

if (firstDstDate == null && secondDstDate == null)
return 'Daylight Savings is not observed in your timezone.';
else
return 'Last minute before DST change occurs in ' +
year + ': ' + firstDstDate + ' and ' + secondDstDate;
}

function FindDstSwitchDate(year, month)
{
// Set the starting date
var baseDate = new Date(Date.UTC(year, month, 0, 0, 0, 0, 0));
var changeDay = 0;
var changeMinute = -1;
var baseOffset = -1 * baseDate.getTimezoneOffset() / 60;
var dstDate;

// Loop to find the exact day a timezone adjust occurs
for (day = 0; day < 50; day++)
{
var tmpDate = new Date(Date.UTC(year, month, day, 0, 0, 0, 0));
var tmpOffset = -1 * tmpDate.getTimezoneOffset() / 60;

// Check if the timezone changed from one day to the next
if (tmpOffset != baseOffset)
{
var minutes = 0;
changeDay = day;

// Back-up one day and grap the offset
tmpDate = new Date(Date.UTC(year, month, day-1, 0, 0, 0, 0));
tmpOffset = -1 * tmpDate.getTimezoneOffset() / 60;

// Count the minutes until a timezone chnage occurs
while (changeMinute == -1)
{
tmpDate = new Date(Date.UTC(year, month, day-1, 0, minutes, 0, 0));
tmpOffset = -1 * tmpDate.getTimezoneOffset() / 60;

// Determine the exact minute a timezone change
// occurs
if (tmpOffset != baseOffset)
{
// Back-up a minute to get the date/time just
// before a timezone change occurs
tmpOffset = new Date(Date.UTC(year, month,
day-1, 0, minutes-1, 0, 0));
changeMinute = minutes;
break;
}
else
minutes++;
}

// Add a month (for display) since JavaScript counts
// months from 0 to 11
dstDate = tmpOffset.getMonth() + 1;

// Pad the month as needed
if (dstDate < 10) dstDate = "0" + dstDate;

// Add the day and year
dstDate += '/' + tmpOffset.getDate() + '/' + year + ' ';

// Capture the time stamp
tmpDate = new Date(Date.UTC(year, month,
day-1, 0, minutes-1, 0, 0));
dstDate += tmpDate.toTimeString().split(' ')[0];
return dstDate;
}
}
}





document.write("Current date/time: " + new Date() + "
");
document.write(DisplayDstSwitchDates());



文档

js获得当前时区夏令时发生和终止的时间代码_javascript技巧

js获得当前时区夏令时发生和终止的时间代码_javascript技巧: 代码如下: DST Calculator function DisplayDstSwitchDates() { var year = new Date().getYear(); if (year year += 1900; var firstSwitch = 0; var secondSwitch = 0; var lastOffset = 9
推荐度:
标签: js 代码 夏令时
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top