时间对象、字符串对象
时间对象、字符串对象
- 时间对象
(1) 时间对象 也是 js中的内置对象 主要用来帮助用户操作 时间相关的基础问题
(2) 创建:new Date() -----> 时间对象(当前时间)
(3) 时间对象 获取和设置 具体时间的方法
① Date.getFullYear()/date.setFullYear(要设置的年份) 获取和设置年份
② Date.getMonth()/date.setMonth(要设置的月份) 获取和设置月份
1) 注意:获取月份得到的是0-11 转换为正常月份需要+1
2) 注意:设置月份写入的数字 也应该是 0-11
③ Date.getDate()/date.setDate(要设置的日期) 获取和设置日期
④ Date.getDay() 获取周几 得到的是一个数字
1) 注意:周几 只能获取 不能设置
2) 注意:得到的结果是数字 0-6 0表示周日
⑤ Date.getHours()/date.setHours(小时数) 获取和设置小时
⑥ Date.getMinutes()/date.setMinutes(分钟数) 获取和设置分钟数
⑦ Date.getSeconds()/date.setSeconds(秒数) 获取和设置秒数
⑧ Date.getTime()/Date.setTime(时间戳) 获取和设置时间戳
1) 时间戳:当前时间 到 1970.1.1.0:0:0 的时间差(单位为ms)
(4) 特定格式的时间
① 通用时间类
1) 显示全部时间(日期+时间)date.toString()
2) 显示日期 date.toDateString()
3) 显示时间 date.toTimeString()
② 本地时间类
1) 显示全部时间(日期+时间)date.toLocaleString()
2) 显示日期 date.toLocaleDateString()
3) 显示时间 date.toLocaleTimeString()
(5) 倒计时思路
① 创建一个目标时间
② 计算目标时间 和 当前时间的 时间差
③ 将时间差 格式化为 xx天 xx小时 xx分钟 xx秒
(6) 创建指定时间的方法
① var oDate = new Date(2018,11,12,0,0,0);
1) 注意:月份要设置为0-11
② var oDate = new Date(“2018,12,12,00:00:00”);
1) 注意 传入的参数 是一个字符串
2) 在这种形式中 月份就可以写成 1-12
③ var oDate = new Date('Wed Dec 12 2018 00:00:00');
1) 不推荐使用
(7) Js时间对象 操作的 插件 Moment.js
① Moment.js是一个帮助我们 很方便的 操作时间的插件
② 创建moment时间对象(文档中的 解析)
1) Moment() 创建 当前时间对象
2) Moment(“YYYY-MM-DD HH:mm:ss”) 创建指定时间对象
3) Moment(原生时间对象) 创建指定时间对象
4) Moment(指定时间戳) 创建指定时间对象
③ 格式化 (文档中的 显示)
1) format
- Moment().format() 按照默认格式将时间格式化 不推荐使用
a) 示例:2020-09-15T14:32:19+08:00
2) toDate:moment().toDate() 获取原生的时间对象
3) valueOf:moment().valueOf() 获取时间戳
④ 获取和设置 (文档中的取值/赋值)
1) Moment().year() 获取年份 moment().year(年份) 设置年份
2) Moment().quarter() 获取 当前 季度
3) Moment().week() 获取当前是 今年的 第几周
4) Moment().daysInMonth() 获取当前月份 有多少天
5) Moment().dayOfYear() 获取当前日期 是 今年的第几天
6) Moment().get(“year/month/date/hour/minute/second/millonsecond”)
- 获取月份 得到的 也是 0-11
7) Moment().set(“year/month/date/hour/minute/second/millonsecond”,具体值)
- 设置月份的时候 需要写作 0-11
⑤ 查询功能方法 (文档中的查询)
1) isBefore
- 用法:moment().isBefore(“YYYY-MM-DD HH:mm:ss”)
- 特殊用法:moment.isBefore(“YYYY-MM-DD”,”year”) 只比较年份
- 作用:比较当前时间 是否早于 指定时间
2) isAfter
- 用法同上
- 作用:比较的是当前moment对象 是否晚于 指定时间
3) isBetween
- 作用:判断当前moment时间 是否在 两个指定时间 之间
- 用法:moment('2010-10-20').isBetween('2010-10-19', '2010-10-25');
- 特殊用法:moment('2010-10-20').isBetween('2010-01-01', '2012-01-01', 'year'); // false
a) 这里由于设置了“year”因此表示只比较年份
4) isLeapYear
- 作用:判断 当前年份是不是 闰年
- 用法:moment().isLeapYear()
5) isSame
- 作用:判断两个时间是否完全相同
- 用法:moment('2010-10-20').isSame('2010-10-20'); // true
- 特殊用法:moment('2010-10-20').isSame('2010-10-20',’year’);
- 字符串对象
(1) Js中一切皆对象
(2) 字符串 只是具备 对象这个身份
(3) 创建字符串的方法
① Var str = “xxxx”
② Var str1 = String(“xxxx”)
③ Var str2 = new String(“xxxx”); 这种方式 创建出来的 是字符串对象 数据类型为object
(4) 字符串对象 也是 js中的一个内置对象 这个对象中包含很多 操作字符串的基础方法
(5) 字符串的方法
① Length
② charAt
③ indexOf:
1) 用法1:字符串.indexOf(字符/字符片段)
- 作用:在字符串中 查找指定的字符或字符片段 如果找到 就返回指定的字符或字符片段 第一次出现的索引 如果找不到 返回-1
2) 用法2:字符串.indexOf(字符/字符片段,起始索引)
- 作用:如果传入起始索引 则从起始索引处开始查找,如果不穿 就从字符串开头
④ lastIndexOf
1) 用法和indexOf完全一样
2) 作用也一样,但是这个方法 是从 字符串的末尾 向 开头 进行查找
⑤ 字符串比较大小
1) 规则:按照字符串中字符的unicode编码值 进行比较, 如果前一位已经比出大小,后面的就不进行比较了
⑥ 截取字符串
1) slice
- 用法:字符串.slice(start,end)
a) Start:起始索引
b) End:结束索引
c) 注意:slice可以截取到start,但是得不到 end
- 用法2:字符串.slice(start)
a) 表示 从start开始 一直截取到 字符串末尾
2) substring
- 用法:字符串.substring(start,end)
a) Start:起始索引
b) End:结束索引
c) 注意:slice可以截取到start,但是得不到 end
- 用法2:字符串.substring(start)
a) 表示 从start开始 一直截取到 字符串末尾
3) substr
- 用法:字符串.substr(start,要截取的位数)
- 作用:从start开始 向后 截取指定的位数
4) Slice和substring的区别
- 前者在参数顺序传入颠倒的时候 截取失败 后者则会自动的将顺序调整好 然后 正常截取
- 如果传入负数参数 前者会先给负数参数+当前字符串的length 如果加完的结果>=0,就按照加完的结果来进行操作 如果结果还<0 就直接将负数参数转换为0 后者遇到负数参数 直接转换为0
5) 大小写转换
- 字符串.toUpperCase() 可以将字符串中的英文字母转换为大写
- 字符串.toLowerCase() 可以将字符串中的英文字母转换为小写
6) 去除字符串两端空格
- 字符串.trim();
7) 字符串的替换
- 字符串.replace(要被替换掉的字符片段,用来替换的字符片段)
- 只能替换掉 第一个 至于后面的就不会替换了
8) 字符串的切割
- Split
a) 用法:字符串.split(“切割标识”);
b) 作用:从字符串开头一直查找到结尾 遇到指定的切割标识后 就会切一刀,最后将切割出来的所有字符片段作为数组项,存入一个数组中。返回这个数组
c) 用法2:字符串.split(“切割标识”,数组长度)
d) 作用:将字符串切割为数组 数组长度为指定长度
- 如果指定长度小于数组实际长度 后面多出来的数组项就舍弃掉
- 如果指定长度大于数组实际长度 就按照实际长度来显示
e) 用法3:字符串.split()
f) 作用:按照默认的切割标识进行切割
浙公网安备 33010602011771号