TypeScript日期格式化方法

背景

相信前端的大多数宝宝们已经升级到TypeScript了吧,如果还没升级,建议升级哦。

刚升级到TypeScript时候,相信还有很多不适应,尤其是很多代码检测报红的,看着就很烦,有些甚至报红也不影响运行,但是就是看着烦,比如下方的JS中日期格式化的原始代码。

升级代码中就是使用TypeScript语法解决了报红之后的代码,欢迎借鉴使用,欢迎批评指正。

个人文章地址:TypeScript日期格式化方法

原始代码


/** 日期格式转换* fmt   将要转换的格式样式* date  需转换的时间*/
dateFormat(fmt, dateValue) {const date = new Date(dateValue); // 默认预先转译一次let ret;const opt = {"Y+": date.getFullYear().toString(),        // 年"m+": (date.getMonth() + 1).toString(),     // 月"d+": date.getDate().toString(),            // 日"H+": date.getHours().toString(),           // 时"M+": date.getMinutes().toString(),         // 分"S+": date.getSeconds().toString()          // 秒// 有其他格式化字符需求可以继续添加,必须转化成字符串};for (let k in opt) {ret = new RegExp("(" + k + ")").exec(fmt);if (ret) {fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))}}return fmt;
}

升级代码


/**** 日期格式化方法* * @author DingDangDog* @param format 格式化后的日期格式,标准格式:YYYY-MM-dd HH:mm:ss。* @param date 待格式化的日期,可以是string或Date类型* @return 结果示例:2022-12-08 17:30:00*/
export const dateFormater = (format: string, date: string | Date) => {date = new Date(date);const dataRegIndexs = [0, 1, 2, 3, 4, 5];const dataRegKeys = ["Y+", "M+", "d+", "H+", "m+", "s+"];const dataItem = [date.getFullYear().toString(),(date.getMonth() + 1) < 10 ? '0' + (date.getMonth() + 1) : (date.getMonth() + 1).toString(),date.getDate() < 10 ? '0' + date.getDate() : date.getDate().toString(),date.getHours().toString(),date.getMinutes().toString(),date.getSeconds().toString(),];let ret;for (const index in dataRegIndexs) {ret = new RegExp("(" + dataRegKeys[index] + ")").exec(format);if (ret) {format = format.replace(ret[1], (ret[1].length == 1) ? (dataItem[index]) : (dataItem[index].padStart(ret[1].length, "0")))}}return format
}

总结

  • TypeScript语法较为严格,对变量类型定义等有较强的校验,不想JavaScript中变量无脑用var就可以。这类特点常见于Java、C++等高级的面向对象类的语言。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部