新闻中心
使用J*aScript实现时间格式化与计算_j*ascript工具函数
答案:封装时间格式化与相对时间计算函数可提升开发效率。通过formatTime将日期转为“YYYY-MM-DD HH:mm:ss”等格式,支持自定义输出;利用timeAgo计算时间差,返回“刚刚”“3分钟前”等人性化提示,增强用户体验。

在日常开发中,时间的格式化与计算是常见的需求。J*aScript 提供了原生的 Date 对象,但其默认输出不够友好,且缺少一些便捷操作。通过封装工具函数,我们可以更高效地处理时间相关的逻辑。
时间格式化:将日期转为可读字符串
很多时候需要将 Date 对象转换成“YYYY-MM-DD HH:mm:ss”这样的格式。可以写一个通用的格式化函数:
function formatTime(date, format = 'YYYY-MM-DD HH:mm:ss') {const d = date instanceof Date ? date : new Date(date);
if (isNaN(d.getTime())) throw new Error('Invalid Date');
const year = d.getFullYear();
const month = String(d.getMonth() + 1).padStart(2, '0');
const day = String(d.getDate()).padStart(2, '0');
const hour = String(d.getHours()).padStart(2, '0');
const minute = String(d.getMinutes()).padStart(2, '0');
const second = String(d.getSeconds()).padStart(2, '0');
return format
.replace(/YYYY/g, year)
.replace(/MM/g, month)
.replace(/DD/g, day)
.replace(/HH/g, hour)
.replace(/mm/g, minute)
.replace(/ss/g, second);
}
使用示例:
// formatTime(new Date()) → "2025-04-05 14:30:22"// formatTime(Date.now(), 'YYYY/MM/DD') → "2025/04/05"
时间差计算:获取两个时间之间的间隔
常用于显示“刚刚”、“3分钟前”、“昨天”等相对时间描述,或精确计算天数、小时等。
function timeAgo(timestamp) {const now = Date.now();
const diff = Math.floor((now - new Date(timestamp)) / 1000);
if (diff
if (diff
if (diff
if (diff
return `${Math.floor(diff / 86400)}天前`;
}
如果需要精确的时间差对象,可用:
BrandCrowd
一个在线Logo免费设计生成器
200
查看详情
function diffTime(start, end) {const startTime = new Date(start).getTime();
const endTime = new Date(end).getTime();
const diffMs = Math.abs(endTime - startTime);
const seconds = Math.floor(diffMs / 1000);
const minutes = Math.floor(seconds / 60);
const hours = Math.floor(minutes / 60);
const days = Math.floor(hours / 24);
return { days, hours: hours % 24, minutes: minutes % 60, seconds: seconds % 60 };
}
常用时间快捷获取
项目中经常需要获取“今天零点”、“本周一”、“本月第一天”等特殊时间点,可以封装辅助函数:
// 获取当天 00:00:00 的时间戳function getTodayStart() {
const now = new Date();
return new Date(now.getFullYear(), now.getMonth(), now.getDate()).getTime();
}
// 获取本月第一天
function getMonthFirstDay() {
const now = new Date();
return new Date(now.getFullYear(), now.getMonth(), 1).getTime();
}
// 获取本周一 00:00:00
function getMondayOfThisWeek() {
const now = new Date();
const day = now.getDay() || 7; // 周日返回0,转为7
const diff = now.getDate() - day + 1;
return new Date(now.setDate(diff)).setHours(0, 0, 0, 0);
}
这些函数在做数据统计、筛选条件时非常实用。
基本上就这些,你可以根据项目需要扩展更多功能,比如支持时区、国际化格式等。核心思路是:封装重复逻辑,提升代码可读性和复用性。
以上就是使用J*aScript实现时间格式化与计算_j*ascript工具函数的详细内容,更多请关注其它相关文章!
# 单元测试
# 建设一个社交网站
# 宁波优化网站电话
# SEO人才补贴证书推荐
# 阿勒泰网站建设推广公司
# 成都正规网站seo推广优化
# 枣庄网站建设 公司招聘
# seo营销机器人
# 东莞网络营销推广运营
# 付费网站推广服务商
# 可视化手机网站建设
# 我们可以
# 你可以
# 本周
# javascript
# 有何不同
# 端到
# 如何实现
# 如何用
# 命令行
# 化与
# 2025
# yy
# 代码可读性
# 工具
# go
# java
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
Sublime Text怎么设置垂直标尺_Sublime配置Rulers规范代码长度
漫蛙网页登录入口 漫蛙漫画官方授权网址
mcjs网页版在线存档 mcjs云存档登录入口
Python中高效访问嵌套字典与列表中的键值对
谷歌google账号怎么注册账号 谷歌账号注册官方流程
PDF文件体积过大处理_PDF压缩技巧详解
LINUX的perf命令入门_LINUX官方性能分析工具的使用与解读
KFC套餐升级怎么获取优惠代码_KFC套餐升级活动与优惠代码获取方法
Angular Material 垂直步进器:实现底部到顶部排序的教程
AO3最新官网入口公告_2025AO3镜像站实时查询方法
批改网学生版PC登录 批改网官网登录系统入口
包子漫画官方网站阅读入口-包子漫画在线漫画官网直达链接
深入理解J*a合成构造器:何时以及为何阻止其生成
Yandex免登录网页版地址 Yandex搜索引擎官方访问入口
Pandas DataFrame 多条件优先级排序与排名
实现分段式页面滚动导航:CSS与J*aScript教程
PPT平滑切换怎么做 PPT炫酷“平滑”切换动画制作教程【必学】
163邮箱官方主页登录 直达网易邮箱登录核心页面
Win11 USB传输速度慢怎么解决 Win11 USB驱动更新与设置
极兔快递快件信息查询系统 极兔快递官网运单号追踪
必由学官网首页入口 必由学教师网页版登录指南
使用 Pandas 高效处理 .dat 文件:字符清理与数据计算
windows10怎么查看本机ip_windows10命令提示符ipconfig使用
天猫双十一预售商品怎么退款_天猫双十一预售退款操作指南
深入理解Google Cloud Datastore查询:祖先路径与数据一致性
Win10磁盘清理工具在哪 Win10打开并使用磁盘清理【教程】
漫蛙2漫画入口 漫蛙正版网页漫画直达网址
如何在CSS中使用visited与link控制链接颜色_visited link伪类配合
夸克浏览器网页版最新地址 夸克浏览器官方入口合集
Lar*el Excel导入时生成自定义递增ID的策略与实践
QQ邮箱电脑版登录入口_QQ邮箱官方网站登录平台
Lar*el 8 多关键词数据库搜索优化实践
CSS Flexbox如何实现多行排列_flex-wrap wrap自动换行显示
UE5.7引擎表现爆炸优化无敌!5090跑4K稳定60FPS
拼多多视频播放卡顿如何处理 拼多多视频播放优化技巧
Golang如何实现微服务鉴权与权限控制_Golang微服务鉴权与权限管理实践
夸克浏览器图书入口 夸克手机浏览器阅读入口
小米汽车11月交付量突破40000台!雷军:将继续努力
163邮箱注册官网 免费申请163个人邮箱
在J*a中如何开发在线活动报名与管理系统_活动报名管理项目实战解析
京东单号查询入口_京东快递订单追踪入口
想当下一个《2077》?《心之眼》Steam评价升至"多半好评"
漫蛙官网正版漫画入口 漫蛙2官方网页登录地址
解决Python单元测试中Mock异常方法调用计数为零的问题
CSS条件样式无法按设备触发怎么排查_media条件语句正确设置解决触发问题
Go语言中Map值调用指针接收器方法的限制与应对
HTML长属性值处理:表单action路径优化与代码规范应对
c++20的std::jthread是什么_c++可中断线程与RAII式管理
从J*aScript对象中精确提取指定属性的教程
word邮件合并后日期格式不对怎么改_Word邮件合并日期格式修改方法


2025-11-06
浏览次数:次
返回列表