1. 程式人生 > >在開發小程式時利用Moment.js格式時間

在開發小程式時利用Moment.js格式時間

 

 

LeanCloud給的日期是ISO格式,比如2017-06-05T14:08:20.589Z,直接顯示在頁面上體驗不好。

凡是有關日期的,格式化、計算,用moment就夠了。

1.下載

選moment.min.js版本,因為沒有用到國際化的東西,體積省點是一點。

2.整合

將moment.min.js放在小程式工程的utils目錄下

3.呼叫

const moment = require('moment.min.js');
moment.locale('en', {
  longDateFormat : {
    l: "YYYY-MM-DD",
    L: "YYYY-MM-DD HH:mm"
  }
});
item.createdAt = moment(item.createdAt).format('L');

自定義一個長日期格式,方便外部呼叫,當然寫作format('YYYY-MM-DD');也是沒問題的,只是外部傳參沒有傳一個'l'或'L'來得簡潔

一點說明

that.setData({
  donateObjects: utils.dateFormat(donateObjects, 'l')
});

一般自己寫的後端,約定的做法在是api格式好了再傳給前端,而實際開發中用的是LeanCloud的JS庫,能給的日期只能是ISO格式,而小程式的wxml偏偏還沒弱,不能像主流MVVM框架那樣提供filter/compute之類的過濾器,只有每每在.js中將資料遍歷格式好了,再發給wxml渲染,例如

 

Moment.js是一個JavaScript的日期、時間處理工具類,其對於JavaScript的日期時間處理功能非常強悍和全面。可以用在瀏覽器環境中使用,也可以在Node.js中。Moment.jsMoment.js對Date物件的擴充套件不是使用Date.prototype ...

 

Moment.js是一個JavaScript的日期、時間處理工具類,其對於JavaScript的日期時間處理功能非常強悍和全面。可以用在瀏覽器環境中使用,也可以在Node.js中。

Moment.js

Moment.js對Date物件的擴充套件不是使用Date.prototype的方式,是對Date物件建立一個包裝物件。通過moment()方法可以獲取這個包裝物件,並且可以在呼叫時傳入一個支援的輸入引數。

Moment.js 使用

獲取當前日期時間,使用moment()方法即可,無需傳入任何引數:

    var now = moment();

日期格式化

    console.log(moment().format('MMMM Do YYYY, h:mm:ss a')); // 輸出:January 3rd 2017, 2:16:38 pm

    console.log(moment().format('dddd')); // 輸出:Tuesday

    console.log(moment().format("MMM Do YY")); // 輸出:Jan 3rd 17

    console.log(moment().format('YYYY [escaped] YYYY')); // 輸出:2017 escaped 2017

    console.log(moment().format()); // 輸出:2017-01-03T14:20:03+08:00

    console.log();

相對時間

    console.log(moment("20111031", "YYYYMMDD").fromNow()); // 輸出:5 years ago

    console.log(moment("20120620", "YYYYMMDD").fromNow()); // 輸出:5 years ago

    console.log(moment().startOf('day').fromNow()); // 輸出:14 hours ago

    console.log(moment().endOf('day').fromNow()); // 輸出:in 10 hours

    console.log(moment().startOf('hour').fromNow()); // 輸出:22 minutes ago

    console.log();

日曆時間

    console.log(moment().subtract(10, 'days').calendar()); // 輸出:12/24/2016

    console.log(moment().subtract(6, 'days').calendar()); // 輸出:Last Wednesday at 2:24 PM

    console.log(moment().subtract(3, 'days').calendar()); // 輸出:Last Saturday at 2:24 PM

    console.log(moment().subtract(1, 'days').calendar()); // 輸出:Yesterday at 2:24 PM

    console.log(moment().calendar()); // 輸出:Today at 2:24 PM

    console.log(moment().add(1, 'days').calendar()); // 輸出:Tomorrow at 2:24 PM

    console.log(moment().add(3, 'days').calendar()); // 輸出:Friday at 2:24 PM

    console.log(moment().add(10, 'days').calendar()); // 輸出:01/13/2017

    console.log();

多語言支援

    console.log(moment.locale()); // 輸出:en

    var m = moment().locale('zh-cn');      

    console.log(m.format('LT')); // 輸出:下午2點33分

    console.log(m.format('LTS')); // 輸出:下午2點33分52秒

    console.log(m.format('L')); // 輸出:2017-01-03

    console.log(m.format('l')); // 輸出:2017-01-03

    console.log(m.format('LL')); // 輸出:2017年1月3日

    console.log(m.format('ll')); // 輸出:2017年1月3日

    console.log(m.format('LLL')); // 輸出:2017年1月3日下午2點33分

    console.log(m.format('lll')); // 輸出:2017年1月3日下午2點33分

    console.log(m.format('LLLL')); // 輸出:2017年1月3日星期二下午2點33分

    console.log(m.format('llll')); // 輸出:2017年1月3日星期二下午2點33分