Javascript从零基础到精通——Date

Date内置对象

日期对象创建

时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总毫秒数(时间戳)

	var date = new Date();		//当前时间的日期对象
	var data = new Date(2012,6,10);		//2012年7月10号的日期对象
	Date.now();		// 获取当前时间戳,得到一个number

获取日期的方法:
在这里插入图片描述
设置日期的方法:
在这里插入图片描述

★注意:

1、setDay( Date内置对象里没有这个方法,星期是通过设定日期自动计算的 )

2、set系列API可以设置比当前范围更精细的时间
	比如:setFullYear(2012,3,5)  设置日期为2012年4月5号
          setHours(13,30,0)  设置时间为13:30:00
时间常识

1秒=1000毫秒

1分钟=60秒

1小时=60分=3600秒

1天=24小时=1440分=86400秒

Date的参数

setFullYear(year,month,day)

  • year:
    必需,表示年份的四位整数

  • month:
    可选,介于 0 ~ 11 之间:如果不填,取系统当月
    -1 为去年的最后一个月
    12 为明年的第一个月
    13 为明年的第二个月

  • date:
    可选,表示月中某一天的数值。如果不填,取系统当日
    用本地时间表示。介于 1 ~ 31 之间:
    0 为上个月最后一天
    -1 为上个月最后一天之前的天数
    如果当月有31天:32 为下个月的第一天
    如果当月有30天:32 为下一个月的第二天

实例演示

现在时间:13:11:43

var date = new Date(2012, 2, 15, 13, 11, 43);
// 2012年3月15日 13:11:43

date.setFullYear(2013, 5);
// 2013年6月15日 13:11:43

date.setFullYear(2012, 20, 5);
// 2013年9月5日 13:11:43
Date应用

1. 计算已经过了元旦多少天了?

        // 计算已经过了元旦多少天
        var date = new Date();      // 获取当前日期

        // 先获取当前时间戳
        var nowTime = date.getTime();

        // 把日期拨到元旦那天(1月1日, 传参0月1日)
        date.setMonth(0, 1);

        // 获取元旦的时间戳
        var ydTime = date.getTime();

        // 不需要取整, 得到的结果本身就一定是整数
        // 使用的是同一个date对象, 只设置了月和日, 时分秒是不变的
        var days = (nowTime - ydTime) / 1000 / 60 / 60 / 24;

        console.log(days);

2. 距离下班还有多久?

        setInterval(function () {
            // 18: 00: 00 放学
            var date = new Date;

            // 获取当前时间戳
            var nowTime = date.getTime();

            // 把时间调到放学的时间
            date.setHours(18, 00, 0);

            // 获取放学的时间戳
            var endTime = date.getTime();

            // 不考虑毫秒, 精确到秒即可
            var time = parseInt((endTime - nowTime) / 1000);

            // 转换成 00: 00: 00
            /*
                3663秒 === 01: 01: 03
                    3663 % 60 === 03
                    (3663 - 03) / 60 % 60 === 01
                    (3663 - 03 - 01 * 60) / 3600 === 01
            */
            // 获取秒数
            var seconds = time % 60;
            // 获取分钟数
            var minutes = (time - seconds) / 60 % 60;
            // 获取小时数
            var hours = (time - seconds - minutes * 60) / 3600

            var h1 = document.getElementById('h1');
            h1.innerHTML = '距离下班还有' + hours + ':' + minutes + ':' + seconds
        }, 1000);

3. 获取某个月有多少天

        var year = prompt('输入年份')
        var month = prompt('请输入月份')
    
        // new一个日期,日期就是当前月得1号
        // var date = new Date(year, month - 1, 1)
    
        // 想要得到这个月总共多少天,其实就是要得到这个月的最后一天是几号
        // 我们要得到这个月最后一天的日期对象,其实也就是得到下个月的第0天
        var date = new Date(year, month, 0)
        // 获取最后一天是几号
        console.log(date.getDate())
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端技术迷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值