Jem*_*mai 139 javascript jquery momentjs
我需要帮助我在我的代码上收到警告,提供的值不是公认的ISO格式.我今天用时刻功能改变我的变量,但它仍然不起作用.
这是警告错误
弃用警告:提供的值不是公认的ISO格式.时刻构造回落到js Date(),这在所有浏览器和版本中都不可靠.不鼓励使用非ISO日期格式,并将在即将发布的主要版本中删除.有关更多信息,请参阅http://momentjs.com/guides/#/warnings/js-date/.参数:[0] _isAMomentObject:true,_isUTC:true,_useUTC:true,_l:undefined,_ i:2016-9-26 19:30,_f:undefined,_strict:undefined,_locale:[object Object]
var entryDate = new Date();
var currentDate = entryDate.getDate();
function between(x,min,max) {
return x.valueOf() >= min.valueOf() && x < max.valueOf();
};
$("#custom1").change(function(){
if ($("#custom1 :selected").val() == "AU" ) {
var keyword = "";
var aus1_s = moment.tz('2016-9-26 19:30', 'Australia/Sydney');
var aus2_s = moment.tz('2016-10-2 19:30', 'Australia/Sydney');
var aus3_s = moment.tz('2016-10-9 19:30', 'Australia/Sydney');
var aus4_s = moment.tz('2016-10-16 19:30', 'Australia/Sydney');
var aus5_s = moment.tz('2016-10-23 19:30', 'Australia/Sydney');
var aus6_s = moment.tz('2016-10-30 19:30', 'Australia/Sydney');
var aus6_e = moment.tz('2016-11-5 19:30', 'Australia/Sydney');
}
else if ($("#custom1 :selected").val() == "NZ" ) {
var aus1_s = moment.tz('2016-9-28 20:30', 'Pacific/Auckland');
var aus2_s = moment.tz('2016-10-4 20:30', 'Pacific/Auckland');
var aus3_s = moment.tz('2016-10-11 20:30', 'Pacific/Auckland');
var aus4_s = moment.tz('2016-10-18 20:30', 'Pacific/Auckland');
var aus5_s = moment.tz('2016-10-25 20:30', 'Pacific/Auckland');
var aus6_s = moment.tz('2016-11-2 20:30', 'Pacific/Auckland');
var aus6_e = moment.tz('2016-11-9 20:30', 'Pacific/Auckland');
}
else {
$("#entryEquals").val("");
return false;
}
var today = moment();
switch (true) {
case between (today, aus1_s, aus2_s):
keyword = "RElYT04=";
break;
case between (today, aus2_s, aus3_s):
keyword = "QlJJREU=";
break;
case between (today, aus3_s, aus4_s):
keyword = "U1lETkVZ";
break;
case between (today, aus4_s, aus5_s):
keyword = "R1JPT00=";
break;
case between (today, aus5_s, aus6_s):
keyword = "V0VERElORw==";
break;
case between (today, aus6_s, aus6_e):
keyword = "VExD";
break;
default:
$("#entryEquals").val("");
break;
}
$("#entryEquals").val(keyword);
});
Run Code Online (Sandbox Code Playgroud)
chr*_*989 148
查看他们所有的精彩文档!
这是他们讨论警告信息的地方.
警告:浏览器对解析字符串的支持不一致.因为没有关于应该支持哪种格式的规范,所以在某些浏览器中有效的功能在其他浏览器中不起作用.
为了解析除ISO 8601字符串以外的任何内容的一致结果,您应该使用String + Format.
moment("12-25-1995", "MM-DD-YYYY");
Run Code Online (Sandbox Code Playgroud)
如果您有多种格式,请查看其String +格式(带有's').
如果您不知道输入字符串的确切格式,但知道它可能是众多格式之一,则可以使用格式数组.
moment("12-25-1995", ["MM-DD-YYYY", "YYYY-MM-DD"]);
Run Code Online (Sandbox Code Playgroud)
请查看文档以获取更具体的信息.
Checkout Parsing in Zone,时区的等效文档.
moment.tz构造函数采用与构造函数相同的所有参数,但使用最后一个参数作为时区标识符.
var b = moment.tz("May 12th 2014 8PM", "MMM Do YYYY hA", "America/Toronto");
Run Code Online (Sandbox Code Playgroud)
编辑
//...
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);
}
//...
Run Code Online (Sandbox Code Playgroud)
Jig*_*att 39
做一下(新日期("27/04/2016")).格式....似乎有效.这个对我有用.
Sha*_*han 11
我遇到了这个错误,因为我试图传递一个日期localStorage
.将日期传递给一个新Date
对象,然后调用.toISOString()为我做了诀窍:
const dateFromStorage = localStorage.getItem('someDate');
const date = new Date(dateFromStorage);
const momentDate = moment(date.toISOString());
Run Code Online (Sandbox Code Playgroud)
这会抑制控制台中的任何警告.
小智 8
像这样在您的函数中使用时刻
moment(new Date(date)).format('MM/DD/YYYY')
Run Code Online (Sandbox Code Playgroud)
您可以使用
moment(date,"currentFormat").format("requiredFormat");
Run Code Online (Sandbox Code Playgroud)
这应该在日期不是 ISO 格式时使用,因为它会告诉我们当前的格式是什么。
这个答案是为了更好地理解此警告
当您使用力矩创建时间对象时,会引起过时警告var today = moment();
。
如果您可以接受此警告,那么我有一种更简单的方法。
不要使用date
从对象js
的使用moment
来代替。例如,用于moment()
获取当前日期。
或将js
日期对象转换为moment
日期。您只需指定js
日期对象的格式即可。
即 moment("js date", "js date format");
例如:
moment("2014 04 25", "YYYY MM DD");
Run Code Online (Sandbox Code Playgroud)
(但只有在您不赞成使用之前,才可以使用此方法,以后可能会贬值moment
)
小智 5
Parsing string with moment.js.
const date = '1231231231231' //Example String date
const parsed = moment(+date);
Run Code Online (Sandbox Code Playgroud)
小智 5
在代码中添加以下行以抑制警告:
const moment = require('moment');
moment.suppressDeprecationWarnings = true;
归档时间: |
|
查看次数: |
130142 次 |
最近记录: |