Определить, можно ли преобразовать строку в дату - PullRequest
1 голос
/ 07 марта 2012

В данный момент я использую:

var d = new Date("March 7 2012");
document.write(d.getMonth() + 1);

Что, если строка даты выглядит странно, как No Date, т. Е.

var d = new Date("No Date"); // anything which isn't recognisable as a date
document.write(d.getMonth() + 1);

Здесь вывод получается NaN

Как отобразить лучшее сообщение, если что-то подобное происходит

Ответы [ 4 ]

7 голосов
/ 07 марта 2012

Вы можете проверить, что значение не NaN, используя isNaN:

    if (isNaN(d.getMonth())) {
       //value is not a date
    }
    else
    {
       document.write(d.getMonth() + 1);
    }
0 голосов
/ 25 июля 2017

Это, похоже, работает.

 new Date("Hi") == 'Invalid Date'
0 голосов
/ 19 декабря 2014

Вы также можете сделать это так:

Date.isValid = function(date) { 
  return !!Date.parse(date);
};

Date.isValid('fake') // false
Date.isValid('1990-11-15T00:00:00+00:00') // true
0 голосов
/ 07 марта 2012

используйте что-то подобное

var d= new Date('No Date');
    var mon=d.getMonth()+1;
    document.write(isNAN(mon)?"No Date": mon);
...