使用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
相关产品推荐
相关产品推荐

