【问题标题】:momentjs deprecation warning [duplicate]momentjs 弃用警告 [重复]
【发布时间】:2018-03-31 17:29:04
【问题描述】:

我正在使用 momentjs 来格式化我的日期并遇到了一个奇怪的警告:

弃用警告:提供的值不是可识别的 ISO 格式。 moment 构造回退到 js Date(),这在所有浏览器和版本中并不可靠。不鼓励使用非 ISO 日期格式,并将在即将发布的主要版本中删除。更多信息请参考http://momentjs.com/guides/#/warnings/js-date/

警告链接暗示我的日期格式无效。这是我的代码:

let thisDate = moment(new Date()).format("YYYY-MM-DD")

根据其文档,从 new Date() 返回的日期以 momentjs 支持的格式...有谁知道可能出了什么问题?

提前致谢!

【问题讨论】:

  • 专业提示:如果您尝试为 now 创建值,则无需传递任何内容。 let thisDate = moment().format('YYYY-MM-DD') 可以正常工作。
  • 请注意moment(new Date()).format("YYYY-MM-DD") 确实打印弃用警告(至少使用最新版本的时刻)。我认为问题在您的代码中的其他地方,可以使用 moment(String, String) 解决,如建议的重复问题中所述。

标签: javascript date momentjs


【解决方案1】:

试试这个:

let thisDate = moment(new Date().toISOString()).format("YYYY-MM-DD")

或更好

let thisDate = moment().format('YYYY-MM-DD')

说明:

new Date()

Thu Oct 19 2017 17:50:06 GMT+0200 (Paris, Madrid (heure d’été)) ==> 取决于本地浏览器和浏览器实现

new Date().toISOString()

"2017-10-19T15:50:31.690Z" ==> 固定格式,总是安全的! ;-)

【讨论】:

  • moment(new Date().toISOString()).format(...) 创建一个日期,将其转换为字符串,将其传递给 moment,在此再次将其解析回日期,然后进行格式化。
  • 我同意,这就是为什么我指出更好的解决方案是:moment().format('YYYY-MM-DD')
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-27
  • 2017-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多