快速开始
安装
bash
npm install @iefe/dateformat@1锁定 1.0.x 版本号即可;v1 已冻结存档,不再发布新版本。
引入
v1 是 UMD 产物(dist/dateformat.min.js),三种方式均可:
js
// ES6(经打包工具)
import { format, getDays, getYearLastDays, getYearofDays } from '@iefe/dateformat'js
// Node.js(CommonJS)
const { format, getDays } = require('@iefe/dateformat')html
<!-- CDN:引入后 format / getDays 等直接挂载为全局函数 -->
<script src="https://unpkg.com/@iefe/dateformat@1.0.1/dist/dateformat.min.js"></script>
<script>
console.log(format('YYYY-MM-DD hh:ii:ss'))
console.log(getDays('2023-02'))
</script>NOTE
v1 没有 datefmt 命名空间,<script> 引入时导出会直接挂到全局 (window.format 等)——这正是 v2 引入冻结命名空间要解决的问题。
格式化
js
// 假设当前时间 2023-03-10 15:00:00(星期五)
format('YYYY-MM-DD hh:ii:ss') // '2023-03-10 15:00:00'
format('-7', 'YYYY-MM-DD') // '2023-03-03'(7 天前)
format(' -7 ', 'YYYY-MM-DD') // '2023-03-03'(偏移字符串允许空格)
format('+3', 'MM-DD') // '03-13'(3 天后)
format('YYYY年MM月DD日') // '2023年03月10日'
format('Y年') // '二零二三年'(逐位中文)
format('今天EE') // '今天周五'必须两个参数才做偏移:format('-7', pattern) 会偏移,而单参 format('-7') 会把 '-7' 当模板原样返回。
辅助方法
js
const { getDays, getYearofDays, getYearLastDays } = require('@iefe/dateformat')
getDays('2023-02') // 28
getDays('2024-02') // 29
getYearofDays('2022') // 365
getYearofDays(2024) // 366
getYearLastDays() // 今年剩余天数(约数,见 API 参考的已知缺陷)CAUTION
v1 的 getDays() 无参调用恒返回 31(实现缺陷,基准并非当月), 请始终传参使用;需要无参"本月天数"请用 v2。
升级到 v2
v2 完全兼容 v1 的调用约定(format(偏移, 模板) 行为一致),并修复了 v1 的已知缺陷。迁移时只需注意三个 v1 独有 Token(yy / mm / dd)在 v2 中不再提供,对照表见 v1 API 参考 → 与 v2 的行为差异。