JS内置对象
日期对象常用方法和插件
- 创建日期对象
- 日期常用方法
- 日期函数应用
- 日期函数库 moment.js
创建日期的3种方式
// 方式1: 无参数
let date = new Date()
// 参数为日期数字的字符串
let date2 = new Date('2022-12-01 00:00:00')
// 参数为0,表示1970-01-01 08:00:00
let date3 = new Date(0)
// 参数为距离1970年的毫秒数,1970-01-02
var date4 = new Date(86140000)
日期常用方法
new Date()
getFullYear()
getMonth() + 1
getDate()
getHours()
getMinutes()
getSeconds()
getDay()
getTime()
Date.now()
var date = new Date();
var Y = date.getFullYear(); // 年
var M = date.getMonth(); // 月份
var D = date.getDate(); // 日
var h = date.getHours(); // 时
var m = date.getMinutes(); // 分
var s = date.getSeconds(); // 秒
var d = date.getDay(); // 星期
var time = date.getTime(); // 1970到现在的毫秒数
var time2 = Date.now(); // 同上
console.log('年',Y);
console.log('月',M+1);
console.log('日',D);
console.log('时',h);
console.log('分',m);
console.log('秒',s);
console.log('星期',d);
console.log('毫秒数',time);
console.log('毫秒数',time2);
日期函数应用
- 格式化日期
/**
* str可以是日期字符串,可以是毫秒数, 可以不传
*/
function formatDate(str) {
var date;
if (!str) {
date = new Date();
} else {
date = new Date(str);
}
var Y = date.getFullYear();
var M = date.getMonth()+1;
var D = date.getDate();
var h = date.getHours();
var m = date.getMinutes();
var s = date.getSeconds();
M = M<10?`0${M}`:M;
D = D<10?`0${D}`:D;
h = h<10?`0${h}`:h;
m = m<10?`0${m}`:m;
s = s<10?`0${s}`:s;
return `${Y}年${M}月${D}日 ${h}:${m}:${s}`
}
var date1 = formatDate(); // 不传参数
console.log('date1',date1);
var date2 = formatDate('2020-11-11 11:11:11'); // 传日期字符串
console.log('date2',date2);
- 比较日期
var oDate = new Date('2001-10-06');
var yDate = new Date('2001-11-17');
console.log(oDate-yDate); // -3628800000
Math 对象
常用方法
- Math.round(x) // 四舍五入
- Math.abs(x) // 求 x 的绝对值
- Math.floor(x) // 向下取整
- Math.ceil(x) // 向上取整
- Math.random() // 随机数
- 其它:正弦、余弦、平方根...
相关方法
- toFixed(x) 保留x位小数
- parseInt 把小数变整数
字符串常用方法
- length // 字符串的长度
- trim() // 去掉字符串前后的空格
- split() // 字符串转数组,接收一个参数,作为转换的标志
截取字符串
- substring() // 截取字符串,接收两个参数,开始的位置和结束的位置
- slice() // 截取字符串, 用法类似substring, 但可以复数
- substr() // 截取字符串, 接收两个参数,第一个参数是开始位置, 第二个参数是截取的字符个数
检测字符串
- charAt() // 下标对应的字符, 若没有返回空
- indexOf() // 返回检测字符串的位置
- lastIndexOf() // 同上,但从后面开始检查
- includes() // 检查字符串是否包含指定字符
- toLowerCase() // 转小写字母
- toUpperCase() // 转大写字母
- match() // 检查有没有包含某个值, 返回符合一个数组,存放符合条件的字符
- replace() // 替换
// 1.字符串长度和下标
var str1 = 'abcdef';
console.log('str1长度:', str1.length);
console.log('第1个字符:',str1[0]);
console.log('最后1个字符:',str1[str1.length-1]);
// 2.去空格
var str2 = ' asdfasdfas ';
console.log('str2长度',str2.length);
var newStr2 = str2.trim();
console.log('新字符串的长度',newStr2.length);
// 3.转数组
var str3 = '张三,李四,王五';
var arr3 = str3.split(',');
console.log('arr3',arr3);
str3 = 'asdfjal;sjfasjkf;asjfl;asjkdfl;ak';
arr3 = str3.split('a');
console.log('arr3',arr3);
截取字符串
substring(不常用)
- slice(常用)
- substr 第二个参数为截取个数
var str = '13812345678';
var str1 = str.substring(2,5); // 812
console.log('str1',str1);
var str2 = str.slice(2,5);
console.log('str2',str2);
str2 = str.slice(2,-1); // 从2开始, -1表示倒数第一个
console.log('str2负数',str2);
str2 = str.slice(2);
console.log('str2一个参数',str2);
str2 = str.slice(-4);
console.log('str2一个负数参数',str2);
var str3 = str.substr(2,5);
console.log('substr',str3);
- 检测字符串
// 1.charAt
var str = 'abcdefgabcdefg';
var str1 = str.charAt(2);
// var str1 = str.charAt(10);
console.log('str1',str1);
// 2.includes
var boo2 = str.includes('a'); // true
var boo2 = str.includes('x'); // false
console.log('boo2',boo2);
// 3. indexOf
var index3 = str.indexOf('b'); // 1
var index3 = str.indexOf('bb'); // -1
console.log('index3',index3);
// 4.lastIndexOf
var index4 = str.indexOf('f'); // 5
var index4 = str.lastIndexOf('f'); // 12
console.log('index4',index4);
- 小写和大写字母, match, replace
var str = 'myName,myAge';
var str1 = str.toLowerCase();
console.log('str1',str1);
var str2 = str.toUpperCase();
console.log('str2',str2);
// 3.match
var str3 = str.match('my'); // 匹配
var str3 = str.match('ny'); // null
console.log('str3',str3);
str3 = str.match(/Name/);
console.log('str3正则',str3);
str3 = str.match(/my/g);
console.log('str3正则',str3);
// 4.replace
var str4 = str.replace('my','you');
console.log('str4',str4);
str4 = str.replace(/my/g,'you');
console.log('str4正则',str4);