小程序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 UTC
const timeStr = parseTime(timestamp * 1000, '{y}-{m}-{d} {h}:{i}:{s}'); // '2020-3-8 00:00:00'

注意事项

  • 时间字符串解析支持日期格式替换,适配不同系统环境
  • 时间戳需乘以 1000 转换为毫秒时间戳
  • 函数支持扩展格式,可根据需求添加其他时间字段处理
  • 建议在实际应用中设置合理的错误处理机制
上一篇:前端js解析格式化时间,兼容时间戳、时间字符串、时间对象
下一篇:ue4添加动画蓝图走和跳

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2025年04月23日 01时43分24秒