Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 比较两个日期时Moment.js弃用警告_Javascript_Momentjs - Fatal编程技术网

Javascript 比较两个日期时Moment.js弃用警告

Javascript 比较两个日期时Moment.js弃用警告,javascript,momentjs,Javascript,Momentjs,我没有看到任何与我的用例匹配的SO线程。我试着比较两个日期,看它们是否匹配。如果没有,则显示一条错误消息。这两个日期的日期格式都是'MM/DD/YYYY'格式,唯一的例外是有时它们可能是'MM/DD/YYYY',而其他时间则是'M/D/yyyyy' 我可以让它工作,但不断得到一个不推荐的错误。我尝试使用moment.ISO_8601参数,但仍然得到不推荐的错误 if( !moment( start_date, moment.ISO_8601 ).isSame( user_start_date,

我没有看到任何与我的用例匹配的SO线程。我试着比较两个日期,看它们是否匹配。如果没有,则显示一条错误消息。这两个日期的日期格式都是
'MM/DD/YYYY'
格式,唯一的例外是有时它们可能是
'MM/DD/YYYY'
,而其他时间则是
'M/D/yyyyy'

我可以让它工作,但不断得到一个不推荐的错误。我尝试使用
moment.ISO_8601
参数,但仍然得到不推荐的错误

if( !moment( start_date, moment.ISO_8601 ).isSame( user_start_date, 
  moment.ISO_8601 ) )
{
    console.log("Both dates must match!");
}
else {
    console.log("Dates match!");
}
不推荐的错误如下所示:

js:1弃用警告:提供的值不是可识别的RFC2822或ISO格式。moment构造回到js Date(),这在所有浏览器和版本中都不可靠。不鼓励使用非RFC2822/ISO日期格式,并将在即将发布的主要版本中删除



有没有一个干净的解决办法

我实际上没有看到这个问题

你能用小提琴演奏吗

var start_date = moment().format('MMM DD h:mm A');
var user_start_date = moment().format('MMM DD h:mm A');

if( !moment( start_date, moment.ISO_8601 ).isSame( user_start_date, 
  moment.ISO_8601 ) )
 {
   console.log("Both dates must match!");
 }
 else{
   console.log("Dates match!");
 }

我并不认为这是个问题

你能用小提琴演奏吗

var start_date = moment().format('MMM DD h:mm A');
var user_start_date = moment().format('MMM DD h:mm A');

if( !moment( start_date, moment.ISO_8601 ).isSame( user_start_date, 
  moment.ISO_8601 ) )
 {
   console.log("Both dates must match!");
 }
 else{
   console.log("Dates match!");
 }

无论是
'MM/DD/YYYY'
还是
'M/D/yyyyy'
都不是See docs识别的符合ISO 8601的格式,请查看momentjs识别的ISO 8601格式。您必须指定
'MM/DD/YYYY'
(或
'M/D/YYYY'
)格式,而不是使用

您可以同时使用
'MM/DD/YYYY'
'M/D/YYYY'
。如果您正在使用,这是必需的。请注意:

从版本2.3.0开始,Moment使用一些简单的试探法来确定使用哪种格式。为了:

  • 与无效的格式相比,更喜欢导致日期的格式
  • 更喜欢解析更多字符串而不是更少,使用更多格式而不是更少格式的格式,即更喜欢更严格的解析
  • 更喜欢数组中较早的格式,而不是较晚的格式
例如,使用
['MM/DD/YYYY','MM/DD/YYYY']
,像
01/10/2017
这样的模糊输入将始终解释为1月10日

下面是一个没有弃用警告的示例:

var开始日期='2017年11月25日';
var用户开始日期='2017年12月27日';
如果(!矩(开始日期,['MM/DD/YYYY','M/D/YYYY']).isname(矩(用户开始日期,['MM/DD/YYYY','M/D/yyyyy']))
{
log(“两个日期必须匹配!”);
}
否则{
日志(“日期匹配!”);
}

无论是
'MM/DD/yyyyy'
还是
'M/D/yyyyy'
都不是See文档识别的符合ISO 8601的格式,以查看momentjs识别的ISO 8601格式。您必须指定
'MM/DD/YYYY'
(或
'M/D/YYYY'
)格式,而不是使用

您可以同时使用
'MM/DD/YYYY'
'M/D/YYYY'
。如果您正在使用,这是必需的。请注意:

从版本2.3.0开始,Moment使用一些简单的试探法来确定使用哪种格式。为了:

  • 与无效的格式相比,更喜欢导致日期的格式
  • 更喜欢解析更多字符串而不是更少,使用更多格式而不是更少格式的格式,即更喜欢更严格的解析
  • 更喜欢数组中较早的格式,而不是较晚的格式
例如,使用
['MM/DD/YYYY','MM/DD/YYYY']
,像
01/10/2017
这样的模糊输入将始终解释为1月10日

下面是一个没有弃用警告的示例:

var开始日期='2017年11月25日';
var用户开始日期='2017年12月27日';
如果(!矩(开始日期,['MM/DD/YYYY','M/D/YYYY']).isname(矩(用户开始日期,['MM/DD/YYYY','M/D/yyyyy']))
{
log(“两个日期必须匹配!”);
}
否则{
日志(“日期匹配!”);
}

你说得对,“弃用”警告不会出现在小提琴上。但不知道为什么。我知道我下载了moment.js的最新版本(实际上,点击了moment.js站点中的链接,打开了js文件,然后我将其复制到记事本中,并将其保存到我的文件夹中,名为moment.js)。我甚至确保完全关闭chrome浏览器(以清除任何缓存),然后再试一次,但它仍然显示出来。我确实使用console.log在我的应用程序中记录时获得的日期值更新了fiddle:@Dallas
'MMM DD h:mm A'
不是ISO 8601认可的格式,您的代码在某些环境中可能会抛出“弃用警告”。您是对的-fiddle中不会出现“弃用”警告。但不知道为什么。我知道我下载了moment.js的最新版本(实际上,点击了moment.js站点中的链接,打开了js文件,然后我将其复制到记事本中,并将其保存到我的文件夹中,名为moment.js)。我甚至确保完全关闭chrome浏览器(以清除任何缓存),然后再试一次,但它仍然显示出来。我确实使用console.log在我的应用程序中记录时获得的日期值更新了小提琴:@Dallas
'MMM DD h:mm A'
不是ISO 8601认可的格式,您的代码在某些环境中可能会抛出“弃用警告”。