0%

MomentJS库笔记

依赖

1
2
3
4
5
6
npm install moment --save   # npm
yarn add moment # Yarn
Install-Package Moment.js # NuGet
spm install moment --save # spm
meteor add momentjs:moment # meteor
bower install moment --save # bower (deprecated)

官网地址:http://momentjs.com/

使用

  • 日期格式化

    1
    2
    3
    4
    5
    moment().format('MMMM Do YYYY, h:mm:ss a'); // 九月 6日 2018, 10:21:36 晚上
    moment().format('dddd'); // 星期四
    moment().format("MMM Do YY"); // 9月 6日 18
    moment().format('YYYY [escaped] YYYY'); // 2018 escaped 2018
    moment().format(); // 2018-09-06T22:21:36+08:00
  • 相对时间

    1
    2
    3
    4
    5
    moment("20111031", "YYYYMMDD").fromNow(); // 7 年前
    moment("20120620", "YYYYMMDD").fromNow(); // 6 年前
    moment().startOf('day').fromNow(); // 1 天前
    moment().endOf('day').fromNow(); // 2 小时内
    moment().startOf('hour').fromNow(); // 22 分钟前
  • 日历时间

    1
    2
    3
    4
    5
    6
    7
    8
    moment().subtract(10, 'days').calendar(); // 2018年8月27日
    moment().subtract(6, 'days').calendar(); // 上周五晚上10点22
    moment().subtract(3, 'days').calendar(); // 本周一晚上10点22
    moment().subtract(1, 'days').calendar(); // 昨天晚上10点22分
    moment().calendar(); // 今天晚上10点22分
    moment().add(1, 'days').calendar(); // 明天晚上10点22分
    moment().add(3, 'days').calendar(); // 本周日晚上10点22
    moment().add(10, 'days').calendar(); // 2018年9月16日
  • 多语言支持

    1
    2
    3
    4
    5
    6
    7
    8
    moment().format('L');    // 2018-09-06
    moment().format('l'); // 2018-09-06
    moment().format('LL'); // 2018年9月6日
    moment().format('ll'); // 2018年9月6日
    moment().format('LLL'); // 2018年9月6日晚上10点22分
    moment().format('lll'); // 2018年9月6日晚上10点22分
    moment().format('LLLL'); // 2018年9月6日星期四晚上10点22分
    moment().format('llll'); // 2018年9月6日星期四晚上10点22分

注意

在snapshot测试中,使用moment(“2018-01-01T00:00:00.000Z”)时,本地测试通过,服务器pipeline跑测试可能会fail,原因是服务器可能和local不是同一个时区,当没有字符串最后的字母时,代表是一个固定时间。相反的是,使用moment(“2018-01-01T00:00:00.000”).unix()生成时间戳时,必须要最后的字母确定时区,才能准确获得唯一的时间戳。