• 我转过几个弯 绕过那个小雨楼
  • 拿着蒲扇摆着衣衫渡着紧箍咒
  • 不问天涯不停留 喝过几壶酒
  • 不过年少白头道义放胸口
  • 倘若明天之后 遥看前尘剑封侯
  • 似那天上神仙无所求
  • 朝朝暮暮君如梦醒十分不为何理由
  • 是真是假是惶恐是无休
  • 路过这风雨花满楼 片刻都不停留
  • 我本这书生进京赶考留下许多愁
  • 你问有没有时候 我叹这天道默悠悠
  • 能否与我一醉方休
  • 又过了几个弯 算尽天量道莫慌
  • 踏这田园闻这芳草香
  • 跌跌撞撞仗剑天涯折煞不枉无笔良
  • 是梦是幻是温柔是家乡
  • 路过这风雨花满楼 片刻都不停留
  • 我本这书生进京赶考留下许多愁
  • 你问有没有时候 我叹这天道默悠悠
  • 能否与我一醉方休
  • 路过这风雨花满楼 片刻都不停留
  • 我本这书生进京赶考留下许多愁
  • 你问有没有时候 我叹这天道默悠悠
  • 能否与我一醉方休
  • 谁能与我一醉方休

moment的diff计算相差几天,结果返回的值差一天的解决办法

257 0

最近有一个地方需要计算过期时间,然后返回天数,但是我用diff计算,得到的结果就是和后端算的相差一天。

//后端返回的时间
const endTime = "2021-12-04";
//前端获取当前时间
const startTime = Date.now();  //或者new Date().getTime()
//计算结果
const day = moment(endTime).diff(startTime,"days");

得到的结果,永远是差一天的结果。

比如今天是时间是:2020-12-08 10:46:00,转为时间戳为:1607395560000

计算相差天数就是为:360,按道理应该是361的

原因

因为我们的当前时间是带有小时分钟的,而后端给的,是一个整的日期,这就导致两边的值其实是不对等的,减去的小时导致这一天的时间不足一天,就被省略不计,所以得到的时候总是和正确时间相差一天。

解决办法

我们将今天的时间,转为和后端返回的时间一样就可以了。

//后端返回的时间
const endTime = "2021-12-04";
//前端获取当前时间
const startTime = moment(Date.now(),"YYYY-MM-DD"); 
//计算结果
const day = moment(endTime).diff(startTime,"days");

这样结果就对了。

其实moment本身是可以直接返回当前时间的,所以获取当前时间可以这样写

const startTime = moment().format("YYYY-MM-DD");
61
  • 本文分类:JavaScript
  • 本文标签:时间戳momentdiff相差天数
  • 流行热度:已超过 257 人围观了本文
  • 最后更新:2020年12月8日 - 11时51分09秒
  • 发布日期:2020年12月8日 - 11时51分09秒
  • 版权申明:本文系作者@木灵鱼儿原创发布在木灵鱼儿 - 有梦就能远航站点。未经许可,禁止转载。

相关文章

微信收款码
微信收款码