Javascript - переформатировать строку даты в ISO8601

У меня есть такая строка:

21.03.2016 23:59

И мне нужно, чтобы эта строка была преобразована в строку даты и времени ISO-8601:

YYYY-MM-DDTHH:mm:ss+00:00

Есть ли простой способ преобразовать эту дату? Я пробую это с moment.js, но не могу найти функцию для анализа существующей даты.


person rockZ    schedule 21.03.2016    source источник
comment
Это действительно не имеет ничего общего с jQuery. Исходная строка не имеет часового пояса, поэтому преобразование ее в строку с точностью, недоступной в оригинале, может ввести в заблуждение.   -  person RobG    schedule 21.03.2016


Ответы (2)


Вы также можете сделать это без использования moment.js. Выглядите следующим образом:

(new Date("03.21.2016 23:59")).toISOString()

просто вам нужно изменить строку 21.03.2016 23:59 (dd-mm-yyyy) на 21.03.2016 23:59 (mm- дд-гггг). Вы можете легко сделать это, разделив дату и изменив порядок разделения частей.

И если вы не хотите этого делать, просто используйте moment.js в соответствии с ответом Маттиаса.

person Jainish Jariwala    schedule 21.03.2016
comment
Нет, не делай этого. Разбор от 21.03.2016 23:59 полностью зависит от реализации и вообще не требует анализа конструктором Date (или Date.parse, они эквивалентны). - person RobG; 21.03.2016

Используя moment.js, вы можете:

var dateString = '21.03.2016 23:59';
var momentDate = moment(dateString, 'DD.MM.YYYY HH:mm');
console.log(momentDate.toISOString());

Вот скрипка, показывающая это.

person matthias    schedule 21.03.2016