~~~
/* 时间字符串格式化:把一个时间日期字符串转化为我们想要的格式 */
// =>"2020年03月11日 14时10分00秒"
// let time = '2020/3/11 14:10:0';
/* 1.把原始字符串中代表时间的值都获取到,最后拼接成为我们想要的即可 */
/* let arr = time.split(' '); //=>["2020/3/11", "14:10:0"]
let arrLeft = arr[0].split('/'); //=>["2020", "3", "11"]
let arrRight = arr[1].split(':'); //=>["14", "10", "0"]
// 在拼接之前,需要把ARRLEFT和ARRRIGHT中不足两位的数字,前面补充零
arrLeft = arrLeft.map(function (item) {
return item.length < 2 ? '0' + item : item;
});
arrRight = arrRight.map(item => item.length < 2 ? '0' + item : item);
time = `${arrLeft[0]}年${arrLeft[1]}月${arrLeft[2]}日 ${arrRight[0]}时${arrRight[1]}分${arrRight[2]}秒`;
console.log(time); */
/* let arr = time.split(' '); //=>["2020/3/11", "14:10:0"]
let arrLeft = arr[0].split('/'); //=>["2020", "3", "11"]
let arrRight = arr[1].split(':'); //=>["14", "10", "0"]
arr = arrLeft.concat(arrRight); //=>["2020", "3", "11", "14", "10", "0"]
arr = arr.map(item => item.length < 2 ? '0' + item : item);
time = `${arr[0]}年${arr[1]}月${arr[2]}日 ${arr[3]}时${arr[4]}分${arr[5]}秒`;
console.log(time); */
/* let time = '2020/3/11 14:10:0';
// let arr = time.split(/(?: |\/|:)/g); //=>["2020", "3", "11", "14", "10", "0"]
let arr = time.match(/\d+/g); //=>["2020", "3", "11", "14", "10", "0"]
arr = arr.map(item => item.length < 2 ? '0' + item : item);
time = `${arr[0]}年${arr[1]}月${arr[2]}日 ${arr[3]}时${arr[4]}分${arr[5]}秒`;
console.log(time); */
// 不足十位补充零的操作封装为一个方法
/* function zero(val) {
return val.length < 2 ? '0' + val : val;
}
let time = '2020/3/11 14:10:0';
let arr = time.split(/(?: |\/|:)/g); //=>["2020", "3", "11", "14", "10", "0"]
time = `${arr[0]}年${zero(arr[1])}月${zero(arr[2])}日 ${zero(arr[3])}时${zero(arr[4])}分${zero(arr[5])}秒`;
console.log(time); */
/* 2.直接基于replace替换 */
/* let time = '2020/3/11 14:10:0';
time = time.replace('/', '年').replace('/', '月').replace(' ', '日 ').replace(':', '时').replace(':', '分') + '秒';
console.log(time); //=>没有实现不足十位数字的补充零 */
/* 3.直接正则处理 */
// 封装一个公共的,万能的时间格式化的方法(此方法暂时不需要你们会,正式课咱们还会讲)
/* (proto => {
function formatTime(template = '{0}年{1}月{2}日 {3}时{4}分{5}秒') {
let arr = this.match(/\d+/g);
return template.replace(/\{(\d+)\}/g, (_, n) => {
let item = arr[n] || '0';
item.length < 2 ? item = '0' + item : null;
return item;
});
}
proto.formatTime = formatTime;
})(String.prototype);
let time = '2020-3-11 14:10:0';
console.log(time.formatTime());
console.log(time.formatTime('{1}-{2} {3}:{4}'));
console.log(time.formatTime('{0}年{1}月{2}日')); */
~~~
- 0001.开课说明
- 0002.ECMAScript的发展历程
- 0003.WEB2.0时代-服务器端渲染,前后端不分离
- 0004.WEB2.0时代-前后端分离模式
- 0005.大前端时代概述
- 0006.前端需要的技术栈和学习技巧
- 0007.浏览器
- 0008.JS的三部分组成
- 0009.JS中创建变量的6种形式
- 0010.JS中变量的命名规范
- 0011.JS中的数据类型分类
- 0012.JS中常用的几种输出方式
- 0013.number属性类型详细解读1
- 0014.number数据类型详细解读2
- 0015.string数据类型详细解读1
- 0016.string数据类型详细解读2
- 0017.boolean数据类型详细解读
- 0018.object数据类型详细解读1
- 0019.object数据类型详细解读2
- 0020.谈谈学习
- 0021.数据类型检测
- 0022.浏览器底层渲染机制(堆栈内存和数据类型区别)
- 0023.关于数据类型区别的面试题
- 0024.课后作业讲解:数据类型转换
- 0025.课后作业讲解:堆栈内存处理
- 0026.课后作业讲解:阿里的一道经典面试题
- 0027.JS中三种常用的判断语句
- 0028.小实战:开关灯特效
- 0029.FOR循环和FOR IN循环
- 0030.课后作业讲解:关于循环判断和数据转化
- 0031.课后作业讲解:关于DOM对象的深入理解
- 0032.关于元素集合的相关操作(奇偶行变色)
- 0033.课后作业讲解:逻辑思维判断题
- reset.min.css
- 0034.(复习)前四天内容的综合复习梳理
- 0035.初窥函数:函数的作用、语法、形参
- 0036-0038.选项卡案例
- 0039.隔行变色案例:进一步强化自定义属性编程思想
- 0040.其它作业题的讲解(自定义属性强化)
- 0041.函数创建和执行的堆栈运行机制
- 0042.函数中的形参和实参
- 0043.函数中的实参集合ARGUMENTS
- 0044.函数中的返回值RETURN
- 0045.箭头函数和匿名函数
- 0046.两个等于比较时候的数据类型转换规则
- 0047.数组的基础结构和常规操作
- 0048.数组常用方法:增删改的五个方法
- 0049.数组常用方法:查询、拼接、转换为字符串
- 0050.数组常用方法:检测是否包含、排序和迭代
- 0051.数组去重:双FOR循环(数组塌陷和SPLICE删除优化)
- 0052.数组去重:对象键值对方式(ES6中SET)
- 0053.Math数学函数对象中常用的方法
- 0054.String字符串中常用的方法
- 0055.实战案例:时间字符串格式化
- 0056.实战案例:queryURLParams1
- 0057.实战案例:queryURLParams2
- 0058.实战案例:获取四位不重复的验证码
- 0059.阶段作业题讲解1(基础知识)
- 0060.阶段作业题讲解2(实战案例)
- 0061-0062.DOM操作中相关知识的复习
- 0063.DOM中的节点操作1
- 0064.DOM中的节点操作2
- utils
- 65.关于DOM的增删改