Math对象
提供了一系列与数学相关的成员
常量:永远不会变化的数据。常量一般命名时所有字母大写,如果有多个单词,用下划线分割。
- random方法: 产生一个0~1之间的随机数
- PI属性:得到圆周率
- abs方法:求绝对值
- floor方法:对一个数向下取整
- ceil方法:对一个数向上取整
- max方法:得到一组数字的最大值;如果无参,得到-Infinity
- min方法:得到一组数字的最小值;如果无参,得到Infinity
- pow方法:求一个数字的幂次方 【Math.pow(2,3) === 2**3】
- round方法:得到一个四舍五入的整数
Date构造函数
术语
- 时间单位
年(year)
月(month)
日(date)
小时(hour)
分钟(minute)
秒(second) = 1000ms
毫秒(millisecond,ms) = 1000 us
微秒(microsecond,us) = 1000 ns
纳秒(nanosecond,ns)
- UTC和GMT
世界划分为24个时区,北京在东8区,格林威治在0时区。
GMT:Greenwish Mean Time 格林威治世界时。太阳时,精确到毫秒。
UTC:Universal Time Coodinated 世界协调时。以原子时间为计时标准,精确到纳秒。
UTC和GMT之间误差不超过0.9秒
GMT+0800 东8区
- 时间戳
数字
1970-1-1 凌晨 到 某个时间 所经过的毫秒数
创建时间对象
- 直接调用函数(不适用new),忽略所有参数,直接返回当前时间的字符串。
- new Date(): 创建日期对象
- 无参,当前时间
- 1个参数,参数为数字,表示传入的是时间戳
- 两个参数以上,分别表示:年、月、日、时、分、秒、毫秒
注意:月份的数字从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日:星期一
*/