Преобразовать возвращенную строку (YYYYMMDD) на дату - программирование

Преобразовать возвращенную строку (YYYYMMDD) на дату

У меня есть строка, содержащая 8 цифр, которые представляют дату. Например:

20120515

Я хотел бы сравнить его с сегодняшней датой, созданной таким образом:

var currentDate = new Date();

Как я могу преобразовать "восьмеричную строку даты" в подходящий формат даты, чтобы сравнить его с currentDate?

4b9b3361

Ответ 1

Используйте метод подстроки и подстроку с 4 элементами и назначьте ее новой дате года. Затем подстройте два элемента за раз и сохраните месяц и дату соответственно.

var dateString  = "20120515";
var year        = dateString.substring(0,4);
var month       = dateString.substring(4,6);
var day         = dateString.substring(6,8);

var date        = new Date(year, month-1, day);
var currentDate = new Date();

Теперь вы можете сравнить две даты с обычными операторами.

Ответ 2

Если вам нужна небольшая библиотека, вы можете использовать moment.js.

var a = moment("20120515", "YYYYMMDD");
// then use any of moment manipulation or display functionality
a.format("MMM Do YYYY"); // May 15th 2012
a.fromNow(); // 14 hours ago
a.calendar(); // Today at 12:00 AM