В настоящее время мне нужно вывести дату в формате «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
PHP) У вас есть посторонний код, который вы можете очистить:
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 минут.