19-日期对象

第十九章.日期对象

1. Date对象

Date是约会的意思是日期的意思。

Date是一个日期对象模型,和Math非常相似。

Date===window.Date;//true
typeof Date;//"function"
typeof Date();//"string"
//"Thu Jun 18 2020 23:00:58 GMT+0800 (中国标准时间)"

运行Date()返回一个日期的字符串表示:

​ 周几 月份 日期 年 时:分:秒 时制+时区(补充)

  • new Date()创建新的时间对象
let time = new Date();
typeof time;//"object"

new Date()的参数: 不写返回当前日期与时间

只有一个参数的时候。此参数表示从1970年1月1日 0:0:0到现在经过的毫秒数

let t = new Date(1539151802132);
//返回Wed Oct 10 2018 14:10:02 GMT+0800 (中国标准时间)的对象

可依照顺序传入年,月,日,时,分,秒。其中年写2位数,表示19xx年,通常4位数,月填写0表示一月11表示12月,大于12表示多加一年1,日从1开始超出减少同样影响月份。时是24进制,分和秒都是60进制

time = new Date(2018,10,10,22,10,66)//返回Sat Nov 10 2018 22:11:06 GMT+0800 (中国标准时间)的对象

不同的时间或者单独的年/月/日都可以进行比较

2. Date对象API

API(Application Programming Interface)

Date对象的方法:参考http://www.runoob.com/jsref/jsref-obj-date.html

  • valueOf 返回Date对象的原始值(等同于getTime)
let time = new Date(2018,10,10,22,10,66);
time.valueOf();//1541859066000
  • getDate 返回日期在当月的几号(1-31)

  • getDay 返回日期在本周的周几(0-6) 0是周天

  • getHours/getFullYear/getMonth/getMinutes/getSeconds 自行翻译理解

    其中浏览器内部时间是东八区时间(北京)。可以在get和时间关键词中间添加UTC表示格林尼治时间。

  • getUTCHours/getUTCFullYear/getUTCMonth/getUTCDay/getUTCDate/getUTCMinutes/getUTCSeconds

设置日期:将前面的get换成set传入参数就可以了,注意参数的范围与类型

3. 倒计时的实现

通过定时器将获取日期时间,然后计算界限。

  1. 刷新获取当前时间
  2. 推算倒计时结束之后是多少时间(目标时间)
  3. 然后定时器获取时间与目标时间比较,如果当前时间大于目标时间则执行回调函数,并结束定时器。
  • 时间戳
/*
 * new Date()
 * 可以来设置一个时间
 *   (现在,将来,过去)
  * */

console.log(
  new Date(2019, 8, 20, 20, 30, 0)
);

console.log(
  new Date()
);

/*传入六个参数 年 月 日 时 分 秒*/
console.log(
  new Date(2028, 8, 20, 20, 30, 0)
);

/* 传入三个参数 年 月 日 */
console.log(
  new Date(2021, 0, 2)
);

/*传入两个参数  年 月*/
console.log(
  new Date(2021, 0)
);

/*传入一个参数  毫秒数*/
console.log(
  new Date(2021)
);
// console.log(new Date().toGMTString());
//把某个时间转换成 格林威治时间 对应的 字符串
console.log(new Date().toUTCString());
  • 案例–时钟
<!DOCTYPE html>
<html lang="zh-cn">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <style>
    *{margin:0;padding:0;font-family:"Microsoft Yahei";}
    div{
      font-size: 30px;
    }
  </style>
</head>
<body>
  <div>
    <span>00</span><b>:</b><span>00</span><b>:</b><span>00</span>
  </div>
  <script>

    (function(){

      let aSpan = document.querySelectorAll("span");

      setInterval( ()=>{
        let d = new Date(),
          h = toTwo( d.getHours() ),
          m = toTwo( d.getMinutes() ),
          s = toTwo( d.getSeconds() )
        ;

        aSpan[0].innerText = h;
        aSpan[1].innerText = m;
        aSpan[2].innerText = s;

      } , 1000 );

      function toTwo(num){
        return (num<10?"0":"") + num
        /*if(num<10){
          return "0"+num;
        }else{
          return ""+num;
        }*/
      }

    })();
  </script>
</body>
</html>
  • 注意
 /*
    * 日期对象很特殊
    *
    * 虽然是对象,但是可以做减法
    * (两个日期对象 或者日期对象和数字 都可以做减法)
    * */

    let x = new Date();
    console.log( x - 0 );//
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值