在开发小程序时利用Moment.js格式时间

本文介绍如何使用Moment.js处理LeanCloud返回的ISO格式日期,包括下载、集成和调用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分

内容概要 本资源是一套完整可运行的 Qt Widgets 批量图片压缩桌面工具源码,基于 Qt5/C++ 从零开发,专为初学者设计,分步实现图片批量处理全套功能。工具支持多选单张图片、直接读取整个文件夹内所有 JPG/PNG 图像,可自定义输出图片分辨率、调节 JPG0~100 区间压缩质量,自带锁定宽高比防拉伸变形功能;批量处理完成后自动统计每张图片压缩前后文件体积,计算整体压缩缩小比例,直观展示压缩效果。 适用人群 Qt/C++ 零基础初学者,学习 QImage 图像绘图、文件目录遍历、UI 交互开发; 需要本地批量处理图片的办公、设计、自媒体从业者; 想要学习图片缩放、JPG 压缩、本地文件 IO、进度条交互的开发学习者。 使用场景 自媒体批量压缩配图,降低图片体积节省上传流量; 摄影、设计批量统一图片尺寸,批量轻量化相册图片; 程序开发学习:QFileDialog 文件选择、QDir 文件夹遍历、QImage 缩放保存、QSlider 参数联动、批量循环界面防卡顿、文件大小格式化转换全套 Qt 图像开发实战案例。 工具核心功能清单 双模式导入图片:手动多选单张图片 / 一键读取整个文件夹全部图片; 自定义输出宽高分辨率,支持锁定原始宽高比,避免图片拉伸变形; 滑块调节 JPG 压缩质量 0~100,平衡图片清晰度与文件占用大小; 自定义输出保存目录,批量生成压缩后的图片文件; 实进度条展示处理进度,循环中刷新界面,程序不会假死卡顿; 自动统计每张图片压缩前后体积,换算 KB/MB 直观展示; 批量完成弹窗汇总:图片总数、成功数量、单张大小对比、整体压缩节省空间比例; 完整模块化代码,功能拆分清晰,每段代码附带详细注释,新手可分步拆解学习。 其他说明 开发环境:Qt Creator + Qt5.15 MSVC,Windows 平台可直接编译运行; 源码结构清晰,功能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值