文章目录
1、功能(需求)描述
- 1、功能(需求)描述
- 2、代码
- 3、实现思路
实现日期补零操作。
2、代码功能实现
function timeZeroFill(dateTime = Date.now()) { let timeStamp = dateTime; dateTime = new Date(dateTime); // 转为字符串 let string = (val) => String(val), // 补零 zeroFilling = (val) => "00" + val, // 获取原数据长度 getLength = (val) => val.length, // 最终结果 result = (zero, len) => zero.slice(len), yer = string(dateTime.getFullYear()), moth = string(dateTime.getMonth() + 1), day = string(dateTime.getDate()), house = string(dateTime.getHours()), minute = string(dateTime.getMinutes()), second = string(dateTime.getSeconds()), week = ['天', '一', '二', '三', '四', '五', '六'][dateTime.getDay()]; moth = result(zeroFilling(moth), getLength(moth)); day = result(zeroFilling(day), getLength(day)); house = result(zeroFilling(house), getLength(house)); minute = result(zeroFilling(minute), getLength(minute)); second = result(zeroFilling(second), getLength(second)); if (yer === "NaN") throw new Error('parameter error.'); return { yer, moth, day, house, minute, second, week, timeStamp }; }
函数执行
console.log(timeZeroFill()); // {yer: '2023', moth: '03', day: '29', house: '09', minute: '26', …} console.log(timeZeroFill('2023-03-29 09:23:36')); // {yer: '2023', moth: '03', day: '29', house: '09', minute: '23', …} console.log(timeZeroFill('2666666')); // parameter error.3、实现思路
第一步:通过String方法把获取到的年月日时分秒和星期转为字符串类型,数字类型没有length属性。 第二步:定义zeroFilling函数执行补零操作。 第三步:定义getLength函数获取长度。 第四步:定义result函数获取最终结果。
在result函数执行时,传入两个参数,分别是补零后的值和原始值的长度。此时的操作属于平行结构,互不干扰,zeroFilling函数和getLength函数执行得到临时值,没有作赋值操作,不会改变原数据;得到的长度也是原始值的长度。
当月份的值为3。 补零后为003。 原始的length值为1。 slice方法截取包括下标,此时下标为1,也就是length,从1开始截取到末尾就得到03。
当月份的值为11。 补零后为0011。 原始的length值为2。 slice方法截取包括下标,此时下标为2,也就是length,从2开始截取到末尾就得到11。