Есть ли встроенная функция или плагин для обработки форматирования даты в JavaScript?

В настоящее время мне нужно вывести дату в формате «5 октября 2012 года». Значение дня месяца без начальных нулей, пробела, полного имени месяца, запятой, пробела, четырехзначного года. Мне нужно сделать это в JavaScript. У меня это работает, но это происходит со мной при написании длинного кода, который кто-то, должно быть, уже выяснил, лучший способ сделать это.

Я не думаю, что есть встроенная функция JavaScript, которая форматирует это именно так, как я хочу. В PHP есть только одна вещь с date() . Есть ли плагин для JavaScript, который делает то же самое?

Ради конкретного примера, в этом случае я начинаю с установленного количества часов в будущем, что мне нужно, чтобы получить дату.

В настоящее время у меня есть:

  var myNow = new Date().getTime(); var myTime = hours * 60 * 60 * 1000; var myDate = new Date(myTime + myNow); var myDay = myDate.getDate(); var myMonthNum = myDate.getMonth(); var myMonth = ''; var myYear = myDate.getFullYear(); switch(myMonthNum) { case 0: myMonth = 'January'; break; ... var completeDate = myDate = " " + myMonth + ", " + myYear; $('#theEndDate').html(completeDate); 

Нет, для объектов Date нет ничего встроенного, но есть множество библиотек для обработки и форматирования:

  • date.js
  • moment.js
  • XDate
  • Дата и дата.Галерея в Mootools
  • Дата в сахаре
  • Dojo.date
  • несколько функций в Мокиките
  • DateFormat (только date PHP)
  • дата в php.js
  • DataType в YUI, особенно для i18n

У вас есть посторонний код, который вы можете очистить:

 var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], today = new Date(), completeDate = today.getDate() + " " + months[today.getMonth()] + ", " + today.getFullYear(); $('#theEndDate').html(completeDate); 

Использование библиотеки – это не всегда ответ, особенно если вы собираетесь использовать его только в одном месте.

Существует множество библиотек дат, но если все, что вы хотите сделать, это создать один конкретный формат из объекта даты, это довольно тривиально:

 var formatDate = (function() { var months = ['January','February','March','April','May','June', 'July','August','September','October','November','December']; return function(date) { return date.getDate() + ' ' + months[date.getMonth()] + ', ' + date.getFullYear(); } }()); alert(formatDate(new Date())); // 28 September, 2012 

Думаю, это заняло менее 5 минут.