
小程序JS解析并格式化日期
发布日期:2021-05-10 23:17:11
浏览次数:30
分类:精选文章
本文共 1804 字,大约阅读时间需要 6 分钟。
JavaScript 时间解析工具
功能说明
本函数用于解析时间数据并按照指定格式生成时间字符串。支持三种时间数据类型:日期对象、时间字符串和时间戳。
参数说明
- time:指定解析的时间数据
- cFormat:指定生成的时间字符串格式,若不指定则使用默认格式
'{y}-{m}-{d} {h}:{i}:{s}'
使用方法
1. 日期对象
如果传入的 time
是日期对象,则直接赋值即可。
parseTime(new Date(), '{y}-{m}-{d} {h}:{i}:{s}')
2. 时间字符串
如果传入的 time
是时间字符串,函数会自动解析。为确保兼容性,支持将日期格式中的分隔符替换为斜杠。
parseTime('2019-10-25 12:34:56', '{y}-{m}-{d} {h}:{i}:{s}')
3. 时间戳(Unix时间)
如果传入的 time
是时间戳,需注意:如果时间戳长度为 10 位,则需先转换为毫秒。
parseTime(1569705600, '{y}-{m}-{d} {h}:{i}:{s}') // 转换为 1569705600 * 1000
内部实现
函数首先根据 time
类型选择适当的解析方式,然后提取各时间部分并按照指定格式生成时间字符串。
时间格式解析
函数定义了一个格式对象 formatObj
,用于存储解析后的时间信息:
const formatObj = { y: date.getFullYear(), // 年份 m: date.getMonth() + 1, // 月份(1-12) d: date.getDate(), // 日期(1-31) h: date.getHours(), // 小时(0-23) i: date.getMinutes(), // 分钟(0-59) s: date.getSeconds(), // 秒(0-59) a: date.getDay() // 星期(0-6)}
时间字符串生成
函数根据 cFormat
定义的格式,逐个替换占位符,并调用回调函数处理特殊字符(如星期几)以及补零问题。
const time_str = format.replace( /{y|m|d|h|i|s|a)+}/g, (result, key) => { let value = formatObj[key]; if (key === 'a') { return ['一', '二', '三', '四', '五', '六', '日'][value - 1]; } if (result.length > 0 && value < 10) { value = '0' + value; } return value || 0; });
示例应用
以下是函数在实际应用中的示例代码:
// 示例1:日期对象const dateObj = new Date(2020, 0, 1);const timeStr = parseTime(dateObj, '{y}-{m}-{d} {h}:{i}:{s}'); // '2020-1-1 0:0:0'// 示例2:时间字符串const timeStr = parseTime('2020-12-31 23:59:59', '{y}-{m}-{d} {h}:{i}:{s}'); // '2020-12-31 23:59:59'// 示例3:时间戳const timestamp = 1582187600; // 2020年3月8日00:00:00 UTCconst timeStr = parseTime(timestamp * 1000, '{y}-{m}-{d} {h}:{i}:{s}'); // '2020-3-8 00:00:00'
注意事项
- 时间字符串解析支持日期格式替换,适配不同系统环境
- 时间戳需乘以 1000 转换为毫秒时间戳
- 函数支持扩展格式,可根据需求添加其他时间字段处理
- 建议在实际应用中设置合理的错误处理机制
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2025年04月23日 01时43分24秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
SpringBoot与缓存(JSR-107、Spring缓存抽象)
2019-03-15
ERROR 总结
2019-03-15
C语言—— 符号函数
2019-03-15
钞票最优解
2019-03-15
查找最小值栈的O(1)
2019-03-15
淘宝天猫双十一养猫组队怎么踢人
2019-03-15
Java面试题整理,闭关在家37天“吃透”这份345页PDF,纯干货
2019-03-15
概念唱片Plastic Beach封面高清壁纸
2019-03-15
旅游后期效果Ography Lightroom预设
2019-03-15
圆角几何艺术动态壁纸
2019-03-15
SpamSieve for mac(邮件过滤器)
2019-03-15
炫酷的圣诞球徽标AE模板
2019-03-15
uFocus for Mac(mac文本编辑器)
2019-03-15
2017CS231n笔记5.CNN
2019-03-15
Linux系统安装Nodejs
2019-03-15
vue项目报错集合
2019-03-15
图片链接
2019-03-15
LINUX-WIFI无线接入的一些东西
2019-03-15
word文档手写字母总会大写问题
2019-03-15
Redis中的key
2019-03-15