11.4根据时区显示日期

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript">
 function initDate(){
   var allTags = document.getElementsByTagName("*"); //获取所有标签
   for(var i=0; i<allTags.length; i++){ //循环遍历所有标签
     if(allTags[i].className.indexOf("tz") == 0){ //如果tr在className中首次出现的位置是0
       showTheTime(allTags[i],allTags[i].className.substring(2)); // 执行showTheTime函数并且传入两个参数
  }   //allTags[i] 第一个参数 所有tr在className中首次出现的位置是0 的标签            
   }     //allTags[i].className.substring(2) 第二个参数 提取className中从第2个字符开始的子串 “-8” “-5” “-0” “+8”
 };
//currElem -- 所有tr在className中首次出现的位置是0 的标签
//tzoffset -- 提取className中从第2个字符开始的子串 “-8” “-5” “-0” “+8”
 function showTheTime(currElem,tzOffset){ 
  var dayName = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
  var thatTZ = new Date(); //通过 new 关键词来定义 Date 对象 Date 对象自动使用当前的日期和时间作为其初始值
  var dateStr = thatTZ.toUTCString();//根据世界时 (UTC) 把 Date 对象转换为字符串,并返回结果 当前时间用世界时表示 day,dd mm yyyy hh:mm:ss UTC
  dateStr = dateStr.substr(0,dateStr.length-3); //设置dateStr为 从dateStr字符串开始位置到dateStr字符串长度减3 day,dd mm yyyy hh:mm:ss
  thatTZ.setTime(Date.parse(dateStr)); // 以当前日期时间距离1970/1/1的毫秒数设置date对象 以毫秒数形式表示的日期可以使它独立于时区
  //Date.parse()方法解析一个日期字符串,并返回1970/1/1午夜距离该日期的毫秒数                                       
  //setTime() 方法以毫秒数设置Date对象
  thatTZ.setHours(thatTZ.getHours()+parseInt(tzOffset)); //当前UT时间小时 当前UT时段+时区偏移量
  /*setHours() 方法用于设置指定的时间的小时字段。调整过的日期的毫秒表示
  语法 dateObject.setHours(hour,min,sec,millisec)
  hour 必需。表示小时的数值,介于 0(午夜) ~ 23(晚上11点) 之间,以本地时间计(下同)。
  min 可选。表示分钟的数值,介于 0 ~ 59 之间。在 EMCAScript 标准化之前,不支持该参数。
  sec 可选。表示秒的数值,介于 0 ~ 59 之间。在 EMCAScript 标准化之前,不支持该参数。
  millisec 可选。表示毫秒的数值,介于 0 ~ 999之间。在 EMCAScript 标准化之前,不支持该参数。
 */
 //thatTZ.getHours() 返回当前日期小时字段 
 //parseInt(tzOffset)  解析“-8” “-5” “-0” “+8”字符串返回整数
  currElem.innerHTML = showTheHours(thatTZ.getHours())+showZeroFilled(thatTZ.getMinutes())+showAmPm(thatTZ.getHours())+dayName[thatTZ.getDay()];
 
  function showTheHours(theHour){ //参数为当前UTC小时段
   if(theHour == 0){ //如果时段为0
    return 12;      //返回12 表示午夜
   }
   if(theHour < 13){ //如果时段小于13
    return theHour  //返回时段 1-12 凌晨-上午
   }
   return theHour-12; //如果是大于等于13 减去12 中午以后的时间转为12小时制
 };
 function showZeroFilled(inValue){ //参数为当前UTC时间 分钟数
  if(inValue > 9){ //如果分钟时大于9
   return ":"+inValue; //冒号加上当前分钟数
  }
  if(inValue < 9){
   return ":0"+inValue; //冒号0加上当前分钟数
  }
 };
 function showAmPm(thatTime){ //参数为当前UTC小时段
  if(thatTime < 12){ //如果时段小于12
   return "AM";         //如果小于12 早上
  }
  return "PM";           //大于等于12 下午
 };
};
 window.onload = initDate;
</script>
</head>

<body>
 <div>
  <ul>
   <li><span class="tz-8"></span>旧金山</li>
   <li><span class="tz-5"></span>纽约</li>
   <li><span class="tz-0"></span>伦敦</li>
   <li><span class="tz+8"></span>香港</li>
  </ul>
 </div>
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值