Я ищу легкий способ сделать следующий формат даты более удобочитаемым.Javascript простая конверсия даты
04OCT2013
Я бы идеально, как к нему выход:
4 October 2013
Любая помощь будет очень признателен, спасибо!
Я ищу легкий способ сделать следующий формат даты более удобочитаемым.Javascript простая конверсия даты
04OCT2013
Я бы идеально, как к нему выход:
4 October 2013
Любая помощь будет очень признателен, спасибо!
Вы можете попробовать с moment.js
<script src="//cdn.jsdelivr.net/momentjs/2.0.0/moment.min.js"></script>
var date = new Date("04OCT2013");
var newDate = moment(date).format("DD MMMM YYYY");
alert(newDate);
var months= [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ];
var d = new Date();
var desc = d.getDate() + ' ' + months[d.getMonth()] + ' ' + d.getFullYear();
Но я хотел бы предложить date.js или даже лучше moment.js.
var now = new Date();
var monthNamesL = [ "January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December" ],
monthNamesS = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ];
var dateFmtd = monthNamesL[now.getMonth()] + ' ' + now.getDay() + ', ' + now.getFullYear();
alert(dateFmtd);
OP хочет гораздо более общий день месяца, а не ориентироваться на США. – RobG
Прежде всего вам необходимо проанализировать вашу строку, а затем отформатировать ее части. Вы можете использовать некоторые полноценные libary для этого (there are a few), или написать эти две простые функции себя:
var shortMonths = ["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dez"],
longMonths = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
function parse(datestring) {
var date = parseInt(datestring.slice(0,2), 10),
month = shortMonths.indexOf(datestring.slice(2,5).toLowerCase()),
year = parseInt(datestring.slice(5,9), 10);
return new Date(year, month, date);
}
function format(date) {
return [date.getDate(), longMonths[date.getMonth()], date.getFullYear()].join(" ");
}
> format(parse("04OCT2013"))
"4 October 2013"
Вдохновленный ответ Берги в:
function formatDate(s) {
s = s.toLowerCase().match(/\d+|\D+/g);
var months = {jan:'January', feb:'February', mar:'March', apr:'April',
may:'May', jun:'June', jul:'July', aug:'August', sep:'September',
oct:'October', nov:'November', dec:'December'};
return +s[0] + ' ' + months[s[1]] + ' ' + s[2];
}
formatDate('04OCT2013'); // 4 October 2013
formatDate('14NOV2015'); // 14 November 2015
формат этого нужно просто колонку немного и используйте встроенный в Date type с синтаксическим разложением:
var myString = "04OCT2013";
затем подстроку из первых символов, а последние 4 и месяц, так что вы можете использовать встроенный в парсер, как показано ниже:
Date.parse("Aug 9, 1995");
Нет необходимости создавать свои собственные массивы месяцев.
OP, похоже, хочет переформатировать строку. Или требуется объект Date? Во всяком случае, полагаясь на функцию Date для правильного синтаксического анализа нестандартной строки, она ненадежна и, как ожидается, не будет работать, по крайней мере, в некоторых браузерах. – RobG
@RobG I aqm предлагает вам форматировать строку, а затем использовать парсер – NimChimpsky
Я понимаю ваш подход. Тем не менее, OP, похоже, хочет отформатированную строку, ваш ответ вернет значение времени ECMAScript или вызовет ошибку, в зависимости от реализации. Кроме того, нет [типа даты] (http://ecma-international.org/ecma-262/5.1/#sec-8), хотя есть собственный объект Date, который может быть вызван как функция или конструктор. – RobG
Вы попробовали что-нибудь? – lelloman
Все, что я пробовал сам, было немного громоздким:/ – ghghjk
проверить здесь на дату functios http://www.w3schools.com/jsref/jsref_obj_date.asp –