Agent Skills
返回列表
Day.js 日期处理

Day.js 日期处理

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_f1b049da/pg20263624 技能到当前 AI 助手。

技能介绍

它在解决什么问题

日期处理在业务代码里看起来很基础,实际坑不少:列表中同一列日期格式不统一、计算"三天后跟进"时把自然日和工作日搞混、判断合同是否过期时拿格式化字符串直接比较。这个技能把常见场景收敛成一组明确约定:统一格式化、语义清晰的加减法、可靠的比较方式。

核心能力与关键步骤

格式化与展示:列表场景用 formatDate 统一输出 YYYY-MM-DD 或 MM-DD HH:mm;"下次跟进 = 今天 + 3 天"用 addDays 计算,语义比裸写日期加减更清晰。

比较与逾期判断:日期比较必须走 valueOf、isBefore、isAfter,而不是比较格式化后的字符串。逾期标签由 isOverdue(nextFollowAt) 完成,传入时间戳或日期字符串即可。

无效日期兜底:解析失败的日期返回 '' 或显式 invalid,绝不把 Invalid Date 渲染到页面上。

时区边界:默认使用本地时区;跨时区报表必须显式声明时区,避免静默差一天的问题。

适用边界

这个技能只处理"自然日"层面的日期计算。复杂节假日、调休工作日请接「中国节假日查询」;口语化的"下周三"请接 chrono-node。另外明确不引入 Moment.js——唯一依赖是 dayjs,需要中文相对时间时再挂载 relativeTime 和 zh-cn 插件。

使用场景

  • 处理客户跟进列表时,需要将时间戳统一格式化为 YYYY-MM-DD,并自动计算并展示三天后的下次跟进日期。
  • 审核合同台账时,要提取每份合同的到期时间,通过比较判断当前是否已过期并打上逾期标签。
  • 渲染跨时区数据报表前,需要明确指定时区参数,避免因时区差异导致全局日期静默偏移一天。
  • 解析用户输入的日期字符串时,遇到非法格式需返回空字符串或明确提示,避免页面渲染出 Invalid Date。

适合人员

  • 需要统一管理客户跟进列表的 CRM 后端开发,希望规范日期格式化并自动计算跟进时间。
  • 负责维护合同台账的法务系统前端开发,需要准确判断并高亮显示已过期的合同条目。
  • 开发跨时区数据看板的后端工程师,诉求是明确时区参数以避免报表日期静默偏移一天。
  • 处理用户自由输入日期的表单开发,希望对非法日期格式做兜底处理,避免页面出现报错文案。