Math对象及Data构造器

本文介绍了JavaScript中的Math对象,包括其常量、方法如random、abs、pow等,并探讨了Date构造函数,详细阐述了时间单位、UTC与GMT的区别、时间戳以及如何创建和操作日期对象,同时提供了日期对象的常用方法如getDate、getTime等,最后提到了日期对象的运算和实用练习。
摘要由CSDN通过智能技术生成

Math对象

提供了一系列与数学相关的成员

常量:永远不会变化的数据。常量一般命名时所有字母大写,如果有多个单词,用下划线分割。

  • random方法: 产生一个0~1之间的随机数
  • PI属性:得到圆周率
  • abs方法:求绝对值
  • floor方法:对一个数向下取整
  • ceil方法:对一个数向上取整
  • max方法:得到一组数字的最大值;如果无参,得到-Infinity
  • min方法:得到一组数字的最小值;如果无参,得到Infinity
  • pow方法:求一个数字的幂次方 【Math.pow(2,3) === 2**3】
  • round方法:得到一个四舍五入的整数

参考

Date构造函数

术语

  1. 时间单位

年(year)
月(month)
日(date)
小时(hour)
分钟(minute)
秒(second) = 1000ms
毫秒(millisecond,ms) = 1000 us
微秒(microsecond,us) = 1000 ns
纳秒(nanosecond,ns)

  1. UTC和GMT

世界划分为24个时区,北京在东8区,格林威治在0时区。

GMT:Greenwish Mean Time 格林威治世界时。太阳时,精确到毫秒。
UTC:Universal Time Coodinated 世界协调时。以原子时间为计时标准,精确到纳秒。

UTC和GMT之间误差不超过0.9秒

GMT+0800 东8区

  1. 时间戳

数字

1970-1-1 凌晨 到 某个时间 所经过的毫秒数

创建时间对象

  • 直接调用函数(不适用new),忽略所有参数,直接返回当前时间的字符串。
  • new Date(): 创建日期对象
  1. 无参,当前时间
  2. 1个参数,参数为数字,表示传入的是时间戳
  3. 两个参数以上,分别表示:年、月、日、时、分、秒、毫秒

注意:月份的数字从0开始计算。

如果缺失参数,日期部分默认为1,时分秒毫秒默认为0。

月、日、时、分、秒、毫秒,均可以传递负数,如果传递负数,会根据指定日期进行计算。

实例成员

  • getDate方法:得到日期部分

  • getDay方法:得到星期几,0表示星期天

  • getFullYear方法:得到年份

  • getHours方法:得到小时部分

  • getMinutes方法:得到分钟部分

  • getSeconds方法:得到秒部分

  • getMilliseconds方法:得到毫秒部分

  • getTime方法:得到时间戳

  • getMonth方法:得到月,从0开始计算

  • setDate方法:设置日期

  • setMonth方法:设置月份

  • setFullYear方法:设置年

  • setMinutes方法

  • setSeconds方法

  • setMilliseconds方法

  • setTime方法:重新设置时间戳

  • toDateString方法:将日期部分转换为可读的字符串。

  • toISOString方法:将整个对象转换为ISO标准的字符串格式。

  • toLocaleDateString方法:根据当前系统的地区设置,将日期部分转换为可读的字符串

  • toLocaleString方法:根据当前系统的地区设置,将整个日期对象转换为可读的字符串

  • toLocaleTimeString方法:根据当前系统的地区设置,将时间部分转换为可读的字符串

日期的运算

日期对象重写了Object中的valueOf方法,返回的是一个数字,表示时间戳

因此,日期对象可以进行数学运算

练习:编写一个函数,用于返回一个友好的日期字符串格式
年-月-日 时:分:秒

 // 年-月-日 时:分:秒
        function getDateString(date) {
            var year = date.getFullYear().toString().padStart(4, "0");
            var month = (date.getMonth() + 1).toString().padStart(2, "0");
            var day = date.getDate().toString().padStart(2, "0");

            var hour = date.getHours().toString().padStart(2, "0");
            var minute = date.getMinutes().toString().padStart(2, "0");
            var second = date.getSeconds().toString().padStart(2, "0");

            return `${year}-${month}-${day} ${hour}:${minute}:${second}`;
        }

        console.log(getDateString(new Date()));

练习:利用Javascript来提醒还有多久过生日

//根据系统当前的月份,输出这一个月每一天的星期
        //2020年6月24:星期三
        //打印当前月每一天的星期
        function print() {
            var now = new Date();
            var m = now.getMonth() + 1;
            //得到这一年,这一月的天数
            var y = now.getFullYear();
            var days = new Date(y, m, 0).getDate();
            for (var i = 1; i <= days; i++) {
                console.log(`${y}${m}${i}日:星期${getDayOfWeek(y, m, i)}`);
            }
        }
        function getDayOfWeek(year, month, day) {
            var d = new Date(year, month - 1, day);
            var day = d.getDay(); //得到星期
            switch (day) {
                case 0:
                    return "日";
                case 1:
                    return "一";
                case 2:
                    return "二";
                case 3:
                    return "三";
                case 4:
                    return "四";
                case 5:
                    return "五";
                case 6:
                    return "六";
            }
        }

        print();
 /*

2020年11月1日:星期日
2020年11月2日:星期一
2020年11月3日:星期二
2020年11月4日:星期三
2020年11月5日:星期四
2020年11月6日:星期五
2020年11月7日:星期六
2020年11月8日:星期日
2020年11月9日:星期一
2020年11月10日:星期二
2020年11月11日:星期三
2020年11月12日:星期四
2020年11月13日:星期五
2020年11月14日:星期六
2020年11月15日:星期日
2020年11月16日:星期一
2020年11月17日:星期二
2020年11月18日:星期三
2020年11月19日:星期四
2020年11月20日:星期五
2020年11月21日:星期六
2020年11月22日:星期日
2020年11月23日:星期一
2020年11月24日:星期二
2020年11月25日:星期三
2020年11月26日:星期四
2020年11月27日:星期五
2020年11月28日:星期六
2020年11月29日:星期日
2020年11月30日:星期一
*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

outside-R

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

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

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

打赏作者

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

抵扣说明:

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

余额充值