判断德国时间冬令时和夏令时

发布时间 2023-12-06 17:25:38作者: Hello程序媛
// 判断是否是德国的夏令时期间
function isDST(date:any) {
  var year = date.getFullYear();
  var dstStart = new Date(year, 2, lastSunday(year, 2), 2); // 夏令时开始于3月最后一个星期日的2:00
  var dstEnd = new Date(year, 9, lastSunday(year, 9), 3);   // 夏令时结束于10月最后一个星期日的3:00
  return date >= dstStart && date < dstEnd;
}
// 辅助函数,返回指定月份的最后一个星期日的日期
function lastSunday(year:any, month:any) {
  var d = new Date(year, month + 1, 0);
  return d.getDate() - d.getDay();
}
// 夏令时返回ture,冬令时返回false
export const isDSTime = () => { 
  var germanyTime = new Date();
  // 如果是夏令时期间,德国时间比UTC+1还要多1小时
  if (isDST(germanyTime)) {
    console.log("现在是夏令时")
    return true
  } else {
    console.log("现在是冬令时")
    return false
  }
}