发布时间格式化工具函数
发布时间格式化工具函数
发布时间格式化工具函数概述本文档介绍了一套用于解析和格式化日期时间字符串的工具函数,旨在提供一种简便的方法来处理日期和时间数据,同时确保在不同设备和时区下的兼容性。函数说明parseDateString(dateString)这个函数用于将一个符合特定格式的日期字符串解析为一个 Date 对象。它首先使用正则表达式来验证输入的字符串是否符合 YYYY-MM-DD HH:MM
发布时间格式化工具函数
概述
本文档介绍了一套用于解析和格式化日期时间字符串的工具函数,旨在提供一种简便的方法来处理日期和时间数据,同时确保在不同设备和时区下的兼容性。
函数说明
parseDateString(dateString)
这个函数用于将一个符合特定格式的日期字符串解析为一个 Date
对象。它首先使用正则表达式来验证输入的字符串是否符合 YYYY-MM-DD HH:MM:SS
的格式。如果匹配成功,它会分别提取并转换年、月、日、时、分、秒的部分,然后创建并返回一个 Date
对象。如果输入的字符串不符合预期格式,函数将尝试直接使用 Date
对象的构造器来解析。
参数
dateString
(String): 需要解析的日期时间字符串。
返回值
Date
: 一个Date
对象,表示输入字符串的日期和时间。
示例
代码语言:javascript代码运行次数:0运行复制ct date = parseDateString("2024-05-06 12:4:56");
cole.log(date); // 输出: Mon May 06 2024 12:4:56 GMT+0800 (中国标准时间)
formatPublishTime(createTime)
这个函数用于格式化发布时间,使其更易于阅读。它首先检查传入的时间字符串是否存在,如果不存在则返回空字符串。然后,函数将当前时间转换为北京时间,并计算与发布时间的时间差。根据时间差的不同,函数将返回不同格式的时间表述。
参数
createTime
(String): 发布时间的日期时间字符串。
返回值
String
: 格式化后的发布时间字符串。
示例
代码语言:javascript代码运行次数:0运行复制ct formattedTime = formatPublishTime("2024-05-05 12:00:00");
cole.log(formattedTime); // 输出: 昨天发布
注意事项
parseDateString
函数假定输入的日期时间字符串格式严格遵循YYYY-MM-DD HH:MM:SS
。如果输入的格式不符合预期,函数可能无法正确解析。formatPublishTime
函数在计算时间差时,将当前时间转换为北京时间,这可能会影响到不同时区的用户。- 函数中的日期格式化遵循了一定的逻辑,但可能需要根据实际应用场景进行调整。
代码实现
以下是上述函数的具体实现代码:
代码语言:javascript代码运行次数:0运行复制// 解析日期字符串为Date对象,兼容iOS设备
function parseDateString(dateString) {
ct regex = /^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/;
ct match = (regex);
if (match) {
ct year = parseInt(match[1], 10);
ct month = parseInt(match[2], 10) - 1;
ct day = parseInt(match[], 10);
ct hour = parseInt(match[4], 10);
ct minute = parseInt(match[5], 10);
ct second = parseInt(match[6], 10);
return new Date(year, month, day, hour, minute, second);
}
return new Date(dateString);
}
// 格式化发布时间
export ct formatPublishTime = (createTime) => {
if (!createTime) {
return '';
}
ct currentTime = new Date(
new Date().getTime() + (new Date().getTimezoneOffset() / 60 + 8) * 600 * 1000
);
ct publishTime = parseDateString(createTime);
ct timeDiff = Math.floor(currentTime - publishTime / 1000);
ct dayDiff = Math.floor(
(currentTime.setHours(0, 0, 0, 0) - publishTime.setHours(0, 0, 0, 0)) / 1000 / 60 / 60 / 24
);
if (dayDiff === 0) {
if (timeDiff < 60) {
return `${timeDiff}秒前`;
} else if (timeDiff < 600) {
ct minutes = Math.floor(timeDiff / 60);
return `${minutes}分钟前`;
} else {
ct hours = Math.floor(timeDiff / 600);
return `${hours}小时前`;
}
} else if (dayDiff === 1) {
return '昨天发布';
} else if (dayDiff === 2) {
return '前天发布';
} else {
ct year = publishTime.getFullYear();
ct month = ('0' + (publishTime.getMonth() + 1)).slice(-2);
ct day = ('0' + publishTime.getDate()).slice(-2);
return `${year}-${month}-${day}`;
}
};
结语
通过使用这些工具函数,开发者可以更轻松地处理和展示日期时间信息,为用户提供更准确和友好的时间表述。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-01-06,如有侵权请联系 cloudcommunity@tencent 删除字符串date对象工具函数#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格
上传时间: 2025-07-23 05:30:02
推荐阅读
留言与评论(共有 18 条评论) |
本站网友 中医美白秘方 | 22分钟前 发表 |
0) - publishTime.setHours(0 | |
本站网友 家庭装修电视墙 | 29分钟前 发表 |
并计算与发布时间的时间差 | |
本站网友 宝力 | 6分钟前 发表 |
一个 Date 对象 | |
本站网友 朔州二手房网 | 9分钟前 发表 |
如果输入的字符串不符合预期格式 | |
本站网友 筑路机械 | 25分钟前 发表 |
formatPublishTime 函数在计算时间差时 | |
本站网友 goldentime | 13分钟前 发表 |
将当前时间转换为北京时间 | |
本站网友 塘沽租房信息 | 13分钟前 发表 |
函数可能无法正确解析 | |
本站网友 彭氏兄弟 | 21分钟前 发表 |
函数中的日期格式化遵循了一定的逻辑 | |
本站网友 约翰墨菲 | 16分钟前 发表 |
0 | |
本站网友 罗密欧与朱丽叶剧本 | 11分钟前 发表 |
将当前时间转换为北京时间 | |
本站网友 北医三院生殖中心 | 8分钟前 发表 |
SS 的格式 | |
本站网友 商品价格查询 | 25分钟前 发表 |
示例代码语言:javascript代码运行次数:0运行复制ct formattedTime = formatPublishTime("2024-05-05 12 | |
本站网友 vsync | 8分钟前 发表 |
将当前时间转换为北京时间 | |
本站网友 杨罡 | 30分钟前 发表 |
原始发表:2025-01-06 | |
本站网友 新日电动车图片 | 15分钟前 发表 |
参数createTime (String) | |
本站网友 艾尚 | 23分钟前 发表 |
0) - publishTime.setHours(0 | |
本站网友 木薯粉是什么 | 23分钟前 发表 |
如果匹配成功 |