在開發小程式時利用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分