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

将moment从require改为import后出现弃用警告的原因咨询

问题分析与解决

警告来源

你看到的弃用警告,本质是新版本moment对参数类型的校验更严格:当调用add方法时,如果第一个参数是字符串类型(而非数字),moment会尝试将其解析为日期格式,而你的expires_in是数字字符串(比如"3600"),不符合RFC2822/ISO标准,因此触发了构造回退到原生Date()的警告。

为什么改引入方式后才出现?

核心原因大概率是你在切换import语法的同时,升级了moment版本:

  • 旧版本moment会自动将字符串类型的数字参数转换为数字,跳过日期解析逻辑,因此不会触发警告;
  • 另外,你之前用的new moment()是不符合moment官方推荐的用法(官方建议直接调用moment()创建当前时间),旧版本对这种错误用法的内部处理恰好避开了参数校验分支,也间接避免了警告。

而require和import本身的导出结构差异(两者都指向moment的默认导出函数)并不是直接原因,只是版本升级的巧合触发点。

解决方法

直接将expires_in显式转换为数字即可消除警告:

// 方式1:用Number转换
moment().add(Number(expires_in), 'seconds')

// 方式2:用parseInt确保整数转换(推荐)
moment().add(parseInt(expires_in, 10), 'seconds')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 00:00:20