Javascript Moment.js中的弃用警告-不是公认的ISO格式
我得到一个警告,提供给矩的值不是公认的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:[对象对象对象]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
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');