Deprecation warning in Moment.js – Not in a recognized ISO format

I’m getting a warning that a value provided to moment is not in a recognized ISO format. I changed my variable today with the moment function and still it doesn’t work.

Here’s the warning error:

Deprecation warning: value provided is not in a recognized ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to for more info.
[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 ='2016-9-26 19:30', 'Australia/Sydney');
    var aus2_s ='2016-10-2 19:30', 'Australia/Sydney');
    var aus3_s ='2016-10-9 19:30', 'Australia/Sydney');
    var aus4_s ='2016-10-16 19:30', 'Australia/Sydney');
    var aus5_s ='2016-10-23 19:30', 'Australia/Sydney');
    var aus6_s ='2016-10-30 19:30', 'Australia/Sydney');
    var aus6_e ='2016-11-5 19:30', 'Australia/Sydney');
  } else if ($('#custom1 :selected').val() == 'NZ') {
    var aus1_s ='2016-9-28 20:30', 'Pacific/Auckland');
    var aus2_s ='2016-10-4 20:30', 'Pacific/Auckland');
    var aus3_s ='2016-10-11 20:30', 'Pacific/Auckland');
    var aus4_s ='2016-10-18 20:30', 'Pacific/Auckland');
    var aus5_s ='2016-10-25 20:30', 'Pacific/Auckland');
    var aus6_s ='2016-11-2 20:30', 'Pacific/Auckland');
    var aus6_e ='2016-11-9 20:30', 'Pacific/Auckland');
  } else {
    return false;

  var today = moment();

  switch (true) {
    case between(today, aus1_s, aus2_s):
      keyword = 'RElYT04=';

    case between(today, aus2_s, aus3_s):
      keyword = 'QlJJREU=';

    case between(today, aus3_s, aus4_s):
      keyword = 'U1lETkVZ';

    case between(today, aus4_s, aus5_s):
      keyword = 'R1JPT00=';

    case between(today, aus5_s, aus6_s):
      keyword = 'V0VERElORw==';

    case between(today, aus6_s, aus6_e):
      keyword = 'VExD';



20 thoughts on “Deprecation warning in Moment.js – Not in a recognized ISO format”

  1. Check out all their awesome documentation!

    Here is where they discuss the Warning Message.

    String + Format

    Warning: Browser support for parsing strings is inconsistent. Because there is no specification on which formats should be supported, what works in some browsers will not work in other browsers.

    For consistent results parsing anything other than ISO 8601 strings, you should use String + Format.

    moment("12-25-1995", "MM-DD-YYYY");

    String + Formats (multiple formats)

    If you have more than one format, check out their String + Formats (with an ‘s’).

    If you don’t know the exact format of an input string, but know it could be one of many, you can use an array of formats.

    moment("12-25-1995", ["MM-DD-YYYY", "YYYY-MM-DD"]);

    Please checkout the documentation for anything more specific.


    Checkout Parsing in Zone, the equivalent documentation for timezones.

    The constructor takes all the same arguments as the moment constructor, but uses the last argument as a time zone identifier.

    var b ="May 12th 2014 8PM", "MMM Do YYYY hA", "America/Toronto");


    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 ='2016-9-26 19:30', dateFormat, region);              
        aus2_s ='2016-10-2 19:30', dateFormat, region);              
        aus3_s ='2016-10-9 19:30', dateFormat, region);                  
        aus4_s ='2016-10-16 19:30', dateFormat, region);                 
        aus5_s ='2016-10-23 19:30', dateFormat, region);
        aus6_s ='2016-10-30 19:30', dateFormat, region);
        aus6_e ='2016-11-5 19:30', dateFormat, region);
    } else if ($("#custom1 :selected").val() == "NZ" ) {
        var region = 'Pacific/Auckland';
        aus1_s ='2016-9-28 20:30', dateFormat, region);
        aus2_s ='2016-10-4 20:30', dateFormat, region);
        aus3_s ='2016-10-11 20:30', dateFormat, region);
        aus4_s ='2016-10-18 20:30', dateFormat, region);
        aus5_s ='2016-10-25 20:30', dateFormat, region);
        aus6_s ='2016-11-2 20:30', dateFormat, region);
        aus6_e ='2016-11-9 20:30', dateFormat, region);
  2. I ran into this error because I was trying to pass in a date from localStorage. Passing the date into a new Date object, and then calling .toISOString() did the trick for me:

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

    This suppressed any warnings in the console.

  3. Add the following line in your code to Suppress the warnings:

    const moment = require('moment');

    moment.suppressDeprecationWarnings = true;

  4. This answer is to give a better understanding of this warning

    Deprecation warning is caused when you use moment to create time object, var today = moment();.

    If this warning is okay with you then I have a simpler method.

    Don’t use date object from js use moment instead. For example use moment() to get the current date.

    Or convert the js date object to moment date. You can simply do that specifying the format of your js date object.

    ie, moment("js date", "js date format");


    moment("2014 04 25", "YYYY MM DD");

    (BUT YOU CAN ONLY USE THIS METHOD UNTIL IT’S DEPRECIATED, this may be depreciated from moment in the future)

  5. You can use


    This should be used when date is not ISO Format as it’ll tell moment what our current format is.

  6. I have similar issue faced and solve with following solution:
    my date format is: ‘Fri Dec 11 2020 05:00:00 GMT+0500 (Pakistan Standard Time)’

    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'));
  7. const dateFormat = 'MM-DD-YYYY';
    const currentDateStringType = moment(new Date()).format(dateFormat);
    const currentDate = moment(new Date() ,dateFormat);  // use this 

Leave a Comment