【发布时间】:2017-12-12 09:38:12
【问题描述】:
在我的代码中,我想检查周末。这是代码:
if(moment(thisDates).day() !== 6 && moment(thisDates).day() !== 0) {}
thisDatesvaiable 包含:
String {[[PrimitiveValue]]: "2017-12-12"}
检查本身有效,但我从那一刻起就收到了贬值警告:
moment.min.js:1 弃用警告:提供的值不在 认可的 RFC2822 或 ISO 格式。时刻构建回退到 js Date(),它在所有浏览器和版本中都不可靠。非 不鼓励使用 RFC2822/ISO 日期格式,并将在 即将发布的主要版本。
那一刻我不同意我如何解析我正在检查的日期。但是应该怎么做。通过阅读docs 无法弄清楚。有什么建议吗?
【问题讨论】:
-
作为参考,RFC2822 格式为
Tue, 12 Dec 2017 09:41:12 UTC。 ISO 是2017-12-12T09:41:12+00:00。这些是当下想要的格式。 -
moment("2017-12-12")被moment(String)接受而没有弃用警告,您能否提供一个显示您的问题的 sn-p 或小提琴? -
String {[[PrimitiveValue]]: "2017-12-12"在我看来不像 JS,这是什么来的?它是模板引擎还是一些服务器端脚本?你确定当它把它变成一个 JS 变量时,它会保持 yyyy-mm-dd 格式吗?还是将其重新格式化为momentJS不喜欢的特定语言环境的格式? -
另外,
if(moment(thisDates).day() !== 6 && moment(thisDates).day() !== 0) {}效率真的很低——你正在创建两个新的时刻对象,并在一个就足够的情况下进行与之相关的所有解析和处理——先在行上声明它然后重复使用它,例如var day = moment(thisDates).day(); if( day !== 6 && .day !== 0) {}
标签: javascript jquery momentjs