Math 对象提供了众多方法用来进行数学计算,下面我们介绍常用的方法,更多方法使用请查看 MDN官网了解。
取极限值
使用 min 与 max 可以取得最小与最大值。
console.log(Math.min(1, 2, 3));
console.log(Math.max(1, 2, 3));
使用apply 来从数组中取值
console.log(Math.max.apply(Math, [1, 2, 3]));
舍入处理
取最接近的向上整数
console.log(Math.ceil(1.111)); //2
得到最接近的向下整数
console.log(Math.floor(1.555)); //1
四舍五入处理
console.log(Math.round(1.5)); //2
random
random 方法用于返回 >=0 且 <1 的随机数(包括0但不包括1)。
返回0~5的随机数,不包括5
const number = Math.floor(Math.random() * 5);
console.log(number);
返回0~5的随机数,包括5
const number = Math.floor(Math.random() * (5+1));
console.log(number);
下面取2~5的随机数(不包括5)公式为:min+Math.floor(Math.random()*(Max-min))
const number = Math.floor(Math.random() * (5 - 2)) + 2;
console.log(number);
下面取2~5的随机数(包括5)公式为:min+Math.floor(Math.random()*(Max-min+1))
const number = Math.floor(Math.random() * (5 - 2 + 1)) + 2;
console.log(number);
下面是随机点名的示例
let stus = [‘小明’, ‘张三’, ‘王五’, ‘爱情’];
let pos = Math.floor(Math.random() * stus.length);
console.log(stus[pos]);
随机取第二到第三间的学生,即1~2的值
let stus = ['小明', '张三', '王五', '爱情'];
let pos = Math.floor(Math.random() * (3-1)) + 1;
console.log(stus[pos]);
Date
网站中处理日期时间是很常用的功能,通过 Date 类型提供的丰富功能可以非常方便的操作。
声明日期
获取当前日期时间
let now = new Date();
console.log(now);
console.log(typeof date); //object
console.log(now * 1); //获取时间戳
//直接使用函数获取当前时间
console.log(Date());
console.log(typeof Date()); //string
//获取当前时间戳单位毫秒
console.log(Date.now());
计算脚本执行时间
const start = Date.now();
for (let i = 0; i < 2000000; i++) {}
const end = Date.now();
console.log(end - start);
当然也可以使用控制台测试
console.time("testFor");
for (let i = 0; i < 20000000; i++) {}
console.timeEnd("testFor");
根据指定的日期与时间定义日期对象
let now = new Date('2028-02-22 03:25:02');
console.log(now);
now = new Date(2028, 4, 5, 1, 22, 16);
console.log(now);
使用展示运算符处理更方便
let info = [2020, 2, 20, 10, 15, 32];
let date = new Date(...info);
console.dir(date);
类型转换
将日期转为数值类型就是转为时间戳单位是毫秒
let hd = new Date("2020-2-22 10:33:12");
console.log(hd * 1);
console.log(Number(hd));
console.log(hd.valueOf())
console.log(date.getTime());
有时后台提供的日期为时间戳格式,下面是将时间戳转换为标准日期的方法
const param = [1990, 2, 22, 13, 22, 19];
const date = new Date(...param);
const timestamp = date.getTime();
console.log(timestamp);
console.log(new Date(timestamp));
对象方法
格式化输出日期
let time = new Date();
console.log(
`${time.getFullYear()}-${time.getMonth()}-${time.getDate()} ${time.getHours()}:${time.getMinutes()}:${time.getSeconds()}`
);
封装函数用于复用
function dateFormat(date, format = "YYYY-MM-DD HH:mm:ss") {
const config = {
YYYY: date.getFullYear(),
MM: date.getMonth() + 1,
DD: date.getDate(),
HH: date.getHours(),
mm: date.getMinutes(),
ss: date.getSeconds()
};
for (const key in config) {
format = format.replace(key, config[key]);
}
return format;
}
console.log(dateFormat(new Date(), "YYYY年MM月DD日"));
下面是系统提供的日期时间方法,更多方法请查看 MDN官网
方法 | 描述 |
---|---|
Date() | 返回当日的日期和时间。 |
– | – |
getDate() | 从 Date 对象返回一个月中的某一天 (1 ~ 31)。 |
– | – |
getDay() | 从 Date 对象返回一周中的某一天 (0 ~ 6)。 |
– | – |
getMonth() | 从 Date 对象返回月份 (0 ~ 11)。 |
– | – |
getFullYear() | 从 Date 对象以四位数字返回年份。 |
– | – |
getYear() | 请使用 getFullYear() 方法代替。 |
– | – |
getHours() | 返回 Date 对象的小时 (0 ~ 23)。 |
– | – |
getMinutes() | 返回 Date 对象的分钟 (0 ~ 59)。 |
– | – |
getSeconds() | 返回 Date 对象的秒数 (0 ~ 59)。 |
– | – |
getMilliseconds() | 返回 Date 对象的毫秒(0 ~ 999)。 |
– | – |
getTime() | 返回 1970 年 1 月 1 日至今的毫秒数。 |
– | – |
getTimezoneOffset() | 返回本地时间与格林威治标准时间 (GMT) 的分钟差。 |
– | – |
getUTCDate() | 根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。 |
– | – |
getUTCDay() | 根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。 |
– | – |
getUTCMonth() | 根据世界时从 Date 对象返回月份 (0 ~ 11)。 |
– | – |
getUTCFullYear() | 根据世界时从 Date 对象返回四位数的年份。 |
– | – |
getUTCHours() | 根据世界时返回 Date 对象的小时 (0 ~ 23)。 |
– | – |
getUTCMinutes() | 根据世界时返回 Date 对象的分钟 (0 ~ 59)。 |
– | – |
getUTCSeconds() | 根据世界时返回 Date 对象的秒钟 (0 ~ 59)。 |
– | – |
getUTCMilliseconds() | 根据世界时返回 Date 对象的毫秒(0 ~ 999)。 |
– | – |
parse() | 返回1970年1月1日午夜到指定日期(字符串)的毫秒数。 |
– | – |
setDate() | 设置 Date 对象中月的某一天 (1 ~ 31)。 |
– | – |
setMonth() | 设置 Date 对象中月份 (0 ~ 11)。 |
– | – |
setFullYear() | 设置 Date 对象中的年份(四位数字)。 |
– | – |
setYear() | 请使用 setFullYear() 方法代替。 |
– | – |
setHours() | 设置 Date 对象中的小时 (0 ~ 23)。 |
– | – |
setMinutes() | 设置 Date 对象中的分钟 (0 ~ 59)。 |
– | – |
setSeconds() | 设置 Date 对象中的秒钟 (0 ~ 59)。 |
– | – |
setMilliseconds() | 设置 Date 对象中的毫秒 (0 ~ 999)。 |
– | – |
setTime() | 以毫秒设置 Date 对象。 |
– | – |
setUTCDate() | 根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。 |
– | – |
setUTCMonth() | 根据世界时设置 Date 对象中的月份 (0 ~ 11)。 |
– | – |
setUTCFullYear() | 根据世界时设置 Date 对象中的年份(四位数字)。 |
– | – |
setUTCHours() | 根据世界时设置 Date 对象中的小时 (0 ~ 23)。 |
– | – |
setUTCMinutes() | 根据世界时设置 Date 对象中的分钟 (0 ~ 59)。 |
– | – |
setUTCSeconds() | 根据世界时设置 Date 对象中的秒钟 (0 ~ 59)。 |
– | – |
setUTCMilliseconds() | 根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。 |
– | – |
toSource() | 返回该对象的源代码。 |
– | – |
toString() | 把 Date 对象转换为字符串。 |
– | – |
toTimeString() | 把 Date 对象的时间部分转换为字符串。 |
– | – |
toDateString() | 把 Date 对象的日期部分转换为字符串。 |
– | – |
toGMTString() | 请使用 toUTCString() 方法代替。 |
– | – |
toUTCString() | 根据世界时,把 Date 对象转换为字符串。 |
– | – |
toLocaleString() | 根据本地时间格式,把 Date 对象转换为字符串。 |
– | – |
toLocaleTimeString() | 根据本地时间格式,把 Date 对象的时间部分转换为字符串。 |
– | – |
toLocaleDateString() | 根据本地时间格式,把 Date 对象的日期部分 |
– | – |
UTC() | 根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。 |
– | – |
valueOf() | 返回 Date 对象的原始值。 |
moment.js
Moment.js是一个轻量级的JavaScript时间库,它方便了日常开发中对时间的操作,提高了开发效率。
更多使用方法请访问中文官网 http://momentjs.cn
或 英文官网 https://momentjs.com
获取当前时间
console.log(moment().format("YYYY-MM-DD HH:mm:ss"));
设置时间
console.log(moment("2020-02-18 09:22:15").format("YYYY-MM-DD HH:mm:ss"));
十天后的日期
console.log(moment().add(10, "days").format("YYYY-MM-DD hh:mm:ss"));