美文网首页
用moment求两个时间的间隔并格式化

用moment求两个时间的间隔并格式化

作者: 小遁哥 | 来源:发表于2020-06-20 12:45 被阅读0次

0

需求1:用后台返回的发货时间,减去现在的时间,告诉用户还有多长时间发货,例如1天24小时36分

const afterMoment = moment().add({ days: 10, hour: 4, minutes: 20 });

afterMoment.format('YYYY-MM-DD HH:mm:ss')) => 2020-06-30 16:10:40

const duration = moment.duration(afterMoment.diff(moment()));

或者

 moment.duration(afterMoment - moment())

因为moment().valueOf()可以得到毫秒数,而+-这种操作会隐式调用valueOf

然后利用moment.duration 提供的duration.days()或者duration.get('day') 这两种方式达到格式化

后台提供的时间格式moment构造器都是支持的,可惜的是moment.duration 不能直接调用format方法

毫秒

moment(Number)

 moment.unix(Number)

字符串

moment(String)

1

需求2:如果距离发货时间不到12小时,要标红处理

      const isDanger =
        duration 
          .clone()
          .subtract(moment.duration(12, 'h'))
          .asMilliseconds() <= 0;

clone()方法是十分重要的,不然默认会在原对象上处理,会影响到duration.days()的值,有时候你可能并不会发现
.asMilliseconds 是转化为毫秒,类似的方法还有asDaysasHours
或者

 const isDanger = duration.asHours() < 12

2

这一战好像回到了解放前,把大大小小的坏习惯都犯了一遍,想想之前自己因为通读了一遍moment中文网还写了两篇文章,结果现在还是这个鬼样子,究其原因,无非是掉以轻心,问题并未简单的解决后便自乱阵脚,十成功力散去七八成,俨然成了个弱智...

不过当我写这篇文章的时候又发现了更为简单的写法,过去的自己总是菜的,不进步就会一直菜。

在实际工作中,还是建议先解决问题在逐步优化,针对当前主要矛盾全力以赴,这样大脑和心脏才不会打架,解决问题也会变得高效。

相关文章

  • 用moment求两个时间的间隔并格式化

    0 需求1:用后台返回的发货时间,减去现在的时间,告诉用户还有多长时间发货,例如1天24小时36分 afterMo...

  • React native 时间格式化工具 moment

    JS 时间格式化工具 moment npm install moment --save # npm yarn ad...

  • nodejs 写接口的步骤附代码

    所需配置: 我用的的是express框架,配合moment(时间格式化)中间件+cors中间件(跨域用)+body...

  • moment格式化时间

    nodejs中的moment模块可以格式化时间使用: //默认格式化当前时间两种方式

  • moment

    moment官方文档 几个方法: (1) 日期格式化 (2) 相对日期 快捷的时间转化-moment 转化: 计算:

  • Date

    1.moment模块 格式化时间格式化 一个月之后的时间一个月之后的时间:

  • push 跟modal

    前端格式化时间 moment().format("YYYY-MM-DD HH:mm:ss");//当前时间 mom...

  • moment.js 格式化显示时间差

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

  • Vue日期格式化与过滤器

    自定义过滤器格式化时间格式(用到了moment.js 库)

  • 时间转换函数moment.js

    moment.js是一款转换时间的插件 安装方式为: 其常用的格式化参数如下表所示: 常用的转换 1.时间格式化 ...

网友评论

      本文标题:用moment求两个时间的间隔并格式化

      本文链接:https://www.haomeiwen.com/subject/btmwxktx.html