日期对象详解

日期对象详解

前面已经介绍过了jQuery倒计时插件的用法,这里我将会使用到原生的js来进行一个简单的实现

首先 因为date是一个构造函数,使用时必须new一个实例出来

  1. new Date()无参数情况下
// 无参数情况下
let date = new Date();
console.log(date); // new Date() 获得的是当前时间
  1. new Date()有参数情况下

    字符串型参数 (一般使用字符串型比较多)

    let date1 = new Date('2020-01-23 0:0:0');
    console.log(date1);// 结果:Thu Jan 23 2020 00:00:00 GMT+0800 (中国标准时间)
    

    数字型参数

    let date2 = new Date(2020, 01, 23);
    console.log(date2);//结果:Sun Feb 23 2020 00:00:00 GMT+0800 (中国标准时间)
    
  2. new Date()的常用的方法

    示例:

    let date = new Date();
    let dateYear = date.getFullYear();
    console.log(dateYear);//结果:2020
    

    getMonth()方法调用时,返回的月份实际是从0开始,也就是说当当前时间为9月时,getMonth()返回的实际是8月

    getDay()方法调用时,比较特殊的是周日返回的不是 7 ,而是 0


    1. 写一个 2020年1月23日 星期四格式的日期


    2. 写一个2020-1-23 18:20:59格式的日期


      1. 获得总的毫秒数(时间戳)

        let date = +new Date();
        console.log(date);//结果:1578408555151  距离1970年1月1日的总毫秒数
        
      2. 倒计时效果

        思路:

        • 核心算法:输入的时间减去现在的时间就是剩余时间,即倒计时,但是不能拿着时分秒去相减,比如05分减去25分,结果会是负数

        • 用时间戳来做,用输入时间总的毫秒数减去现在时间总的毫秒数,得到的就是剩余时间的毫秒数

        • 把剩余时间总的毫秒数转换为天,时,分,秒(时间戳转换成时分秒)

        • 转换公式
          天数:parseInt(总秒数/60/60/24);//计算天数
          小时: parseInt(总秒数/60/60%24);//计算小时
          分: parseInt(总秒数/60%60);//计算分数

          当前秒数: parseInt(总秒数%60);//计算当前秒数

        代码:

         //封装一个倒计时函数
                function countDown(time) {
                    let nowTime = +new Date(); //返回的是当前总的毫秒数
                    let inputTime = +new Date(time); //返回用户输入时间的总的毫秒数
        
                    let times = (inputTime - nowTime) / 1000; //获得剩余时间总的秒数
                    // 因为我们得到的时间不能是小数 必须是整数  所以要转换成整数类型
                    let d = parseInt(times / 60 / 60 / 24); //天数
                    let h = parseInt(times / 60 / 60 % 24); //小时
                    let m = parseInt(times / 60 % 60); //分
                    let s = parseInt(times % 60); //当前的秒
                    let str = '剩余' + d + '天' + h + '小时' + m + '分' + s + '秒'
                    return str
                }
                console.log(countDown('2020-11-7 23:40:00'));
        

大功告成!

本文参考自pink老师

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值