Как убедиться, что строка даты находится в формате ISO 8061 в javascript

#javascript #node.js #regex #api #express

#javascript #node.js #регулярное выражение #API #выразить

Вопрос:

Я должен понять, находится ли данная строка в YYYY-MM-DD формате.

Я тестировал, используя следующий фрагмент кода:

 const isValidDate = (new Date(timestamp)).getTime() > 0;
 

Однако в этом случае «2015-06-22T13:17:21 0000» также будет действительным.

Я хочу убедиться, что присутствует только часть дня YYYY-MM-DD .

Что было бы аккуратным кратким способом определить это в javascript.

Ответ №1:

Ну, вы могли бы выполнить тест регулярных выражений для входной строки:

 var input = "2015-06-22";
if (/^d{4}-d{2}-d{2}$/.test(input)) {
    console.log("MATCH");
} 

Если ваше требование действительно заключается в том, чтобы временная метка была точно в полночь, вы также можете проверить компоненты часов, минут и секунд:

 var date = new Date();
date.setHours(0, 0, 0, 0);
if (date.getHours() == 0 amp;amp; date.getMinutes() == 0 amp;amp;
    date.getSeconds() == 0) {
    console.log("Date is at midnight");
}