Javascript Moment.js中的弃用警告-不是公认的ISO格式

Javascript Moment.js中的弃用警告-不是公认的ISO格式,javascript,jquery,momentjs,Javascript,Jquery,Momentjs,我得到一个警告,提供给矩的值不是公认的ISO格式。今天我用矩函数修改了变量,但仍然不起作用 以下是警告错误: 弃用警告:提供的值不是公认的ISO格式。moment构造回到js Date(),这在所有浏览器和版本中都不可靠。不鼓励使用非ISO日期格式,并将在即将发布的主要版本中删除。有关更多信息,请参阅。 论据: [0]\u IsamentObject:true、\u isUTC:true、\u useUTC:true、\u l:undefined、\u i:2016-9-26 19:30、\u

我得到一个警告,提供给矩的值不是公认的ISO格式。今天我用矩函数修改了变量,但仍然不起作用

以下是警告错误:

弃用警告:提供的值不是公认的ISO格式。moment构造回到js Date(),这在所有浏览器和版本中都不可靠。不鼓励使用非ISO日期格式,并将在即将发布的主要版本中删除。有关更多信息,请参阅。 论据: [0]\u IsamentObject:true、\u isUTC:true、\u useUTC:true、\u l:undefined、\u i:2016-9-26 19:30、\u f:undefined、\u strict:undefined、\u locale:[对象对象对象]

var entryDate=new Date();
var currentDate=entryDate.getDate();
函数介于(x、最小值、最大值)之间{
返回x.valueOf()>=最小值of()&&x<最大值of();
}
$('#custom1')。更改(函数(){
if($('#custom1:selected').val()=='AU'){
var关键字=“”;
var aus1_s=时刻tz(“2016-9-26 19:30”,“澳大利亚/悉尼”);
var aus2_s=时刻tz('2016-10-219:30','澳大利亚/悉尼');
var aus3_s=时刻tz(“2016-10-9 19:30”,“澳大利亚/悉尼”);
var aus4_s=时刻tz(“2016-10-16 19:30”,“澳大利亚/悉尼”);
var aus5_s=时刻tz(“2016-10-23 19:30”,“澳大利亚/悉尼”);
var aus6_s=时刻tz(“2016-10-30 19:30”,“澳大利亚/悉尼”);
var aus6_e=时刻tz(“2016-11-5 19:30”,“澳大利亚/悉尼”);
}else if($('#custom1:selected').val()=='NZ'){
var aus1_s=力矩tz('2016-9-28 20:30','Pacific/Auckland');
var aus2_s=力矩tz('2016-10-4 20:30','Pacific/Auckland');
var aus3_s=力矩tz('2016-10-11 20:30','Pacific/Auckland');
var aus4_s=力矩tz('2016-10-18 20:30','Pacific/Auckland');
var aus5_s=力矩tz('2016-10-25 20:30','Pacific/Auckland');
var aus6_s=力矩tz('2016-11-2 20:30','Pacific/Auckland');
var aus6_e=力矩tz('2016-11-9 20:30','Pacific/Auckland');
}否则{
$('#entryEquals').val('');
返回false;
}
var today=时刻();
开关(真){
两人之间的案例(今天,澳大利亚1区,澳大利亚2区):
关键字='RElYT04=';
打破
(今天,澳大利亚2、澳大利亚3)之间的案例:
关键字='QlJJREU=';
打破
两人之间的案例(今天,澳大利亚3、4个州):
关键字='U1lETkVZ';
打破
两人之间的案例(今天,澳大利亚4个州,澳大利亚5个州):
关键词='R1JPT00=';
打破
两人之间的案例(今天,澳大利亚5个州,澳大利亚6个州):
关键字='V0VERElORw=';
打破
两人之间的案例(今天,澳大利亚6个州,澳大利亚6个州):
关键词='VExD';
打破
违约:
$('#entryEquals').val('');
打破
}
$('#entryEquals').val(关键字);
});

查看他们所有精彩的文档

这里是他们讨论问题的地方

字符串+格式 警告:浏览器对分析字符串的支持不一致。因为没有关于应该支持哪些格式的规范,所以在某些浏览器中有效的格式在其他浏览器中不起作用

对于解析ISO 8601字符串以外的任何内容的一致结果,应该使用

字符串+格式(多种格式) 如果您有多个格式,请检查它们(使用“s”)

如果您不知道输入字符串的确切格式,但知道它可能是多种格式之一,则可以使用一组格式

请查看文档以了解更具体的信息

时区 签出,时区的等效文档

tz构造函数接受与矩构造函数相同的所有参数,但使用最后一个参数作为时区标识符

编辑

//...
var dateFormat = "YYYY-M-D H:m"; //<-------- This part will get rid of the warning.
var aus1_s, aus2_s, aus3_s, aus4_s, aus5_s, aus6_s, aus6_e;
if ($("#custom1 :selected").val() == "AU" ) {
    var region = 'Australia/Sydney';

    aus1_s = moment.tz('2016-9-26 19:30', dateFormat, region);              
    aus2_s = moment.tz('2016-10-2 19:30', dateFormat, region);              
    aus3_s = moment.tz('2016-10-9 19:30', dateFormat, region);                  
    aus4_s = moment.tz('2016-10-16 19:30', dateFormat, region);                 
    aus5_s = moment.tz('2016-10-23 19:30', dateFormat, region);
    aus6_s = moment.tz('2016-10-30 19:30', dateFormat, region);
    aus6_e = moment.tz('2016-11-5 19:30', dateFormat, region);
} else if ($("#custom1 :selected").val() == "NZ" ) {
    var region = 'Pacific/Auckland';

    aus1_s =  moment.tz('2016-9-28 20:30', dateFormat, region);
    aus2_s =  moment.tz('2016-10-4 20:30', dateFormat, region);
    aus3_s =  moment.tz('2016-10-11 20:30', dateFormat, region);
    aus4_s =  moment.tz('2016-10-18 20:30', dateFormat, region);
    aus5_s =  moment.tz('2016-10-25 20:30', dateFormat, region);
    aus6_s =  moment.tz('2016-11-2 20:30', dateFormat, region);
    aus6_e =  moment.tz('2016-11-9 20:30', dateFormat, region);
}
//...
/。。。

var dateFormat=“YYYY-M-D H:M”// 这个答案是为了更好地理解这个警告

当您使用矩创建时间对象时,会出现弃用警告,
var today=moment()

如果你同意这个警告,那么我有一个更简单的方法

不要使用
js
中的
date
对象,而是使用
moment
。例如,使用
moment()
获取当前日期

或者将
js
date对象转换为
moment
date。只需指定
js
date对象的格式即可

即,
时刻(“js日期”、“js日期格式”)

例如:


(但您只能在折旧之前使用此方法,将来可能会从
时刻开始折旧)

我遇到此错误,因为我试图从
本地存储传递日期。将日期传递到一个新的
date
对象中,然后调用它为我实现了以下技巧:

const dateFromStorage = localStorage.getItem('someDate');
const date = new Date(dateFromStorage);
const momentDate = moment(date.toISOString());

这抑制了控制台中的任何警告。

这样做对我来说很有效:

moment(new Date("27/04/2016")).format

像这样在函数中使用矩

 moment(new Date(date)).format('MM/DD/YYYY')

使用矩.js解析字符串

const date = '1231231231231' //Example String date
const parsed = moment(+date);
你可以用

moment(date,"currentFormat").format("requiredFormat");

当日期不是ISO格式时,应使用此选项,因为它将告诉矩我们当前的格式是什么。

在代码中添加以下行以抑制警告:

const moment=require('moment')


moment.suppressDepressionWarnings=true

我面临类似问题,并通过以下解决方案解决: 我的日期格式是:“2020年12月11日星期五05:00:00 GMT+0500(巴基斯坦标准时间)”

moment.suppressDepressionWarnings=true

一个简单的答案:

let date = Date.now();
let timeNow = moment(new Date(date)).format('YYYY-MM-DD');

我认为警告指的是
'2016-9-26 19:30'
,这不是公认的ISO格式。格式上有什么错误?那么我需要添加0吗?您可以执行
矩.tz('2016-9-28 20:30','yyy-M-D H:mm','Pacific/Auckland')根据。。。这将接受24小时格式的1或2位数的月和日、1或2位数的小时。错误是您提供的格式不是公认的ISO格式。。。提供一个公认的ISO格式,或者提供一个字符串“提示”期望的格式好的,谢谢。这个怎么样?我也可以添加这个格式吗?var today=时刻
moment(new Date("27/04/2016")).format
 moment(new Date(date)).format('MM/DD/YYYY')
const date = '1231231231231' //Example String date
const parsed = moment(+date);
moment(date,"currentFormat").format("requiredFormat");
let currentDate = moment(new Date('Fri Dec 11 2020 05:00:00 GMT+0500 (Pakistan Standard Time)').format('DD-MM-YYYY'); // 'Fri Dec 11 2020 05:00:00 GMT+0500 (Pakistan Standard Time)'

let output=(moment(currentDate).isSameOrAfter('07-12-2020'));
const dateFormat = 'MM-DD-YYYY';

const currentDateStringType = moment(new Date()).format(dateFormat);
    
const currentDate = moment(new Date() ,dateFormat);  // use this 
let date = Date.now();
let timeNow = moment(new Date(date)).format('YYYY-MM-DD');