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

使用Moment.js计算两个日期秒数差出现弃用警告如何解决

解决方案

警告触发原因:你构造moment对象时,传入了非RFC2822/ISO标准的自定义日期格式,却没有显式指定对应的格式规则,moment回退到原生JS Date解析才触发了弃用提示。同时你的代码存在大量「日期转字符串再转回日期」的冗余操作,完全可以省略。

方案1(更推荐,无需手动维护格式匹配)

直接修改前端传值为ISO标准格式,从根源避免格式识别问题

前端修改后代码:

var a = moment().toISOString();

后端修改后代码:

// 直接解析标准ISO日期,无警告
const startDate = moment(request.body.a);
// 直接获取当前时间moment实例,无需额外格式化转换
const endDate = moment();
const result = 'Diff: ' + endDate.diff(startDate, 'seconds');

方案2(无需修改前端代码)

如果要保持前端原有传值格式,只需要在后端解析前端传参时,显式指定对应的日期格式即可:

后端修改后代码:

// 显式指定输入的日期格式为前端传递的MM/DD/YYYY HH:mm:ss
const startDate = moment(request.body.a, "MM/DD/YYYY HH:mm:ss");
const endDate = moment();
const result = 'Diff: ' + endDate.diff(startDate, 'seconds');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 16:12:01