moment.js 格式化显示时间差

moment.js 格式化显示时间差,第1张

momentjs 格式化显示时间

项目中有个字段需要计算两个时间的时间差,并且按照 x天 x 小时 x 分钟 显示,如

之前已经在项目中引入了 momentjs ,接下来用其中的一些方法封装一个可以得到目标字符串的函数。

Momentjs 是一个很好的日期工具库,但是有个小缺点,不提供按需导入,所以打包出来是这样的。。

足足有600+K。
我们上传服务器的文件肯定是越小越好,所以需要按需导入,图中可以看到,Momentjs 里面大部分是各类语言包,我们日常使用肯定不需要这么多语言包,所以在Vueconfigjs 中配置。

即可实现部分打包,效果出来是这样的

基本上缩小到3/1的大小,同理,其他不能按需导入的modules也可以这样打包减小发布大小。

使用momentjs设定一个固定的日期,同事小白写了一个moment(2018/01/01),结果控制台报出

value provided is not in a recognized RFC2822 or ISO format moment construction falls back to js Date(), which is not reliable across all browsers and versions Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release

google翻译:

提供的值不是公认的RFC2822或ISO格式。 时刻构造回落到js Date(),这在所有浏览器和版本中都不可靠。 不鼓励使用非RFC2822 / ISO日期格式,并将在即将发布的主要版本中删除

原因是设置格式不正确,moment(20180101)!   领教了,兄弟。

是可以的。
调用moment,不需要任何参数就可以创建当前时间的moment对象。可以创建时间为传入参数的moment对象。
>如果想直接在html文件中使用moment,那么需要先引入momentjs文件,可以在cdnjs中获得最新的momentjs文件。

resprender("fooejs", { moment: require("moment") });
写一个 defaultValue,写一个 getDefaultRenderValue 的方法。
方法里面深拷贝 defaultValue 并返回。defaultValue 里面放所有你要预留的变量。
最后每次 render 都先用 getDefaultRenderValue 然后再在里面扩展你自己当前页面所需变量。

momentjs 使用
以当前时间创建一个moment对象
var now = moment()
以指定的时间创建一个moment对象
以时间2017-7-1创建一个moment对象
year: 2017,
month: 7,
day: 1});
以指定的格式获取一个时间字符串
var nowStr = moment()format('YYYY年MM月DD日');
如何获取前一天,前一个月或前一年
假设已经有一个moment对象 nowObj
nowObjdate(nowObjdate() - 1) —— nowObj现在保存的是前一天的时间
nowObjmonth(nowObjmonth() - 1) —— nowObj保存的是前一个月的时间
nowObjyear(nowObjyear() - 1) —— 保存的是前一年


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12940981.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-29
下一篇 2023-05-29

发表评论

登录后才能评论

评论列表(0条)

保存