You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Moment.js计算指定起始时间到当前时间的分钟差结果异常求助

解决Moment.js计算时间差分钟数错误的问题

看起来你遇到的核心问题是Moment.js没有正确解析你的日期格式,导致后续计算的时间差结果完全不对。

你的起始日期字符串是 '02.05.2018 18:05:03'(格式为DD.MM.YYYY HH:mm:ss),但Moment.js的自动解析规则并不适配这种带点分隔的日期格式,直接调用moment(startdate)会生成一个错误的日期对象,自然算出来的分钟数就不准确了。

正确的解决代码

你需要在解析起始日期时明确指定格式,告诉Moment.js如何解读这个字符串:

var startdate = '02.05.2018 18:05:03';
// 第二个参数传入日期格式,确保Moment精准解析
var exp = moment(startdate, 'DD.MM.YYYY HH:mm:ss');
var minutes = moment().diff(exp, 'minutes');
console.log(minutes); // 现在得到的就是正确的分钟数了

为什么这样能解决问题?

当你传入格式参数后,Moment.js会严格按照你指定的规则解析字符串:

  • DD:两位数的日期(对应示例中的02)
  • MM:两位数的月份(对应示例中的05)
  • YYYY:四位数的年份(对应示例中的2018)
  • HH:mm:ss:24小时制的时分秒(对应示例中的18:05:03)

这样就能生成正确的起始时间对象,再和当前时间moment()计算差值,结果就完全准确了。

内容的提问来源于stack exchange,提问作者valera

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:34:22