首页 > 解决方案 > 在计算年龄差异时收到警告?

问题描述

我在计算年龄差异时变得谨慎

这是我的代码 http://plnkr.co/edit/1wIvVISmgEqcRNnAD971?p=preview

moment.min.js:1 弃用警告:提供的值不是可识别的 RFC2822 或 ISO 格式。moment 构造回退到 js Date(),这在所有浏览器和版本中并不可靠。不鼓励使用非 RFC2822/ISO 日期格式,并将在即将发布的主要版本中删除。请参阅 http://momentjs.com/guides/#/warnings/js-date/了解更多信息。参数:[0] _isAMomentObject:true,_isUTC:false,_useUTC:false,_l:未定义,_i:1983 年 2 月 9 日,_f:未定义,_strict:未定义,_locale:[object Object] Function.createFromInputFallback 错误(https ://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js:1:3368)在 Yt ( https://cdnjs.cloudflare.com/ajax/libs/moment. js/2.22.2/moment.min.js:1:21353) 在 Ot ( https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js:1:22064 ) 在 Tt ( https://cdnjs.cloudflare.com/ajax /libs/moment.js/2.22.2/moment.min.js:1:22146 ) 在 Nt ( https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min。 js:1:24464 ) 在 M.ln.diff ( https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js:1:29987 ) 在 Object. ( http://run.plnkr.co/rVHCD6iVYofYv9Th/app.js:8:22 ) 在 Object.invoke ( https://code.angularjs.org/1.4.12/angular.js:4570:17 ) 在扩展.instance ( https://code.angularjs.org/1.4.12/angular.js:9435:34 ) 在 nodeLinkFn (https://code.angularjs.org/1.4.12/angular.js:8540:34

我正在这样做

let DOB= "09-Feb-1983"
console.log(moment(DOB, 'DD-MMM-YYYY', true).isValid())
console.log(moment().format('DD-MMM-YYYY'));
console.log(moment().diff('09-Feb-1983', 'years'))

如何删除此警告我已经指定格式

标签: javascriptangularjsmomentjsangular-moment

解决方案


您可以在将字符串传递给函数之前将其转换为片刻diff()

试试这样

let DOB= "09-Feb-1983"
console.log(moment(DOB, 'DD-MMM-YYYY', true).isValid())
console.log(moment().format('DD-MMM-YYYY'));
console.log(moment().diff(moment('09-Feb-1983', 'DD-MMM-YYYY'), 'years'));

推荐阅读