Javascript 检查工作日编号时出现弃用警告

Javascript 检查工作日编号时出现弃用警告,javascript,jquery,momentjs,Javascript,Jquery,Momentjs,在我的代码中,我想检查周末。代码如下: if(moment(thisDates).day() !== 6 && moment(thisDates).day() !== 0) {} thisDatesvaiable包含: String {[[PrimitiveValue]]: "2017-12-12"} 检查本身工作正常,但我从现在起收到了一个去润滑警告: moment.min.js:1弃用警告:提供的值不在 公认的RFC2822或ISO格式。建筑回到js的那一刻 Dat

在我的代码中,我想检查周末。代码如下:

if(moment(thisDates).day() !== 6 && moment(thisDates).day() !== 0) {}
thisDates
vaiable包含:

String {[[PrimitiveValue]]: "2017-12-12"}   
检查本身工作正常,但我从现在起收到了一个去润滑警告:

moment.min.js:1弃用警告:提供的值不在 公认的RFC2822或ISO格式。建筑回到js的那一刻 Date(),它在所有浏览器和版本中都不可靠。不 不鼓励使用RFC2822/ISO日期格式,并将在 即将发布的主要版本


我得到了那一刻不同意我如何解析我正在检查的日期。但应该如何做呢。通过阅读这本书我想不出来。有什么建议吗?

我使用的是Jquery。每种方法似乎都不对:

dates = ["2017-12-12", "2017-12-13"]
    jQuery.each(dates, function() {
        var thisDates = this;
        if (moment(thisDates).day() !== 6 && moment(thisDates).day() !== 0) {}
      }
将其更改为:

jQuery.each(dates, function(index, value) {
  var thisDates = value;
  if (moment(thisDates).day() !== 6 && moment(thisDates).day() !== 0)
}

现在我没有收到任何警告供参考,RFC2822格式是2017年12月12日星期二09:41:12 UTC。ISO是
2017-12-12T09:41:12+00:00
。这些是我们现在想要的格式。而
moment(“2017-12-12”)
被接受而没有遭到反对的警告,您能提供一个片段或小提琴来显示您的问题吗?
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将始终将此值包装为对象,即使它是一个简单的字符串或数字值”。因此在第一个(非工作)上面的示例中,
this
是一个对象,字符串中的每个字符都有一个属性,而不是一个简单的字符串。使用回调提供的
value
参数(如第二个示例中所示)是访问正在迭代的值的正确方法。