day.js(Star 28.1k)

github:https://github.com/iamkun/dayjs

一个 2KB 的 JS 日期时间库,和 Moment.js 的 API 设计保持完全一样. 如果您曾经用过 Moment.js, 那么您已经知道如何使用 Day.js。

示例

  1. dayjs()
  2. .startOf('month')
  3. .add(1, 'day')
  4. .set('year', 2018)
  5. .format('YYYY-MM-DD HH:mm:ss')

特征

  • 🕒 和 Moment.js 相同的 API 和用法
  • 💪 不可变数据 (Immutable)
  • 🔥 支持链式操作 (Chainable)
  • 🌐 国际化 I18n
  • 📦 仅 2kb 大小的微型库
  • 👫 全浏览器兼容

date-fns(Star 23k)

官网:https://date-fns.org/
github:https://github.com/date-fns/date-fns

现代JavaScript日期实用程序库

date-fns提供了最全面,最简单且一致的工具集,用于在浏览器和Node.js中操纵JavaScript日期。
轻巧、功能强大,可代替moment.js,参考【转】你可能不需要Moment.js
**

格式化示例

  1. import { format, formatDistance, formatRelative, subDays } from 'date-fns'
  2. format(new Date(), "'Today is a' iiii")
  3. //=> "Today is a Thursday"
  4. formatDistance(subDays(new Date(), 3), new Date())
  5. //=> "3 days ago"
  6. formatRelative(subDays(new Date(), 3), new Date())
  7. //=> "last Friday at 7:26 p.m."

区别

如果你只需要简单的操作那么day.js更适合你,如果复杂一点的项目那么date-fns看起来更合适。