Преобразование ГГГГ-ММ-ДД ЧЧ:ММ:СС в другой формат в Javascript

У меня есть строка в javascript как 2016-02-27 20:24:39, и я хочу преобразовать ее как 27th Feb 08:24pm.

Что проще всего сделать в Javascript?


person Malaiselvan    schedule 27.02.2016    source источник
comment
@aldanux Я могу добиться этого, поставив несколько условий, используя date.getHours(), date.getMinutes() etc... Мой вопрос в том, есть ли функция Javascript, такая как php, для простого преобразования заданной строки даты в любой формат, который нам нужен.   -  person Malaiselvan    schedule 27.02.2016
comment
Ничто встроенное в JavaScript не может этого сделать. Для этого вам нужна сторонняя библиотека.   -  person corgrath    schedule 27.02.2016
comment
Это повторяющийся вопрос, проверьте этот вопрос   -  person Shankar Gurav    schedule 28.02.2016
comment
@corgrath - вам, конечно, не нужна сторонняя библиотека: написать функцию, которая это делает, не так сложно. (Хотя я думаю, что вопрос задает самый простой способ, который, вероятно, с moment.js.)   -  person nnnnnn    schedule 28.02.2016
comment
@nnnnnn Никто не сказал, что это сложно. Я сказал, что это не встроено в язык. Кроме того, я не согласен изобретать велосипеды.   -  person corgrath    schedule 28.02.2016


Ответы (2)


Существует нестандартный метод Date toLocaleFormat('%d-%b-%Y'). Но, похоже, пока работает только в Firefox.

Лучше использовать библиотеку date.format (всего 125 строк).

var date = new Date('2016-02-27 20:24:39');
dateFormat(date, "dS mmm, h:MMTT");
person Darshan    schedule 27.02.2016

Ознакомьтесь с библиотекой JavaScript под названием moment.js.

Поскольку формат по умолчанию для момента — ISO 8601 (ГГГГ-ММ-ДД ЧЧ:ММ:СС), вам не нужно указывать моменту, как анализировать дату входной строки (по умолчанию используется ISO 8601), поэтому вы можете просто написать :

var now = "2016-02-27 20:24:39";
var formattedDate = moment(now).format("Do MMM HH:mma");
console.log(formattedDate);

Демо:

https://jsfiddle.net/gekd97dy/

Подробнее об отображении в разных форматах можно прочитать здесь:

http://momentjs.com/docs/#/displaying/

person corgrath    schedule 27.02.2016
comment
Когда я запускаю демонстрацию, консоль печатает 1 февраля 20:02, но входное значение равно 2016-02-27 20:24. - person Roberto; 28.02.2016
comment
@corgrath "Do MMM hh:mma" - правильный формат для получения желаемого результата. jsfiddle.net/4nmqayyd/1 - person Malaiselvan; 28.02.2016
comment
@Malaiselvan разве ты не говорил, что хочешь 27-го? Это Ко. - person corgrath; 28.02.2016
comment
@Malaiselvan извините - person corgrath; 28.02.2016
comment
@ Роберто Спасибо. Я обновил его до правильного формата сейчас. - person corgrath; 28.02.2016