Пример преобразования или форматирования строки даты без использования Date или библиотеки.
var monthLookup = {
january: '01',
february: '02',
march: '03',
april: '04',
may: '05',
june: '06',
july: '07',
august: '08',
september: '09',
october: '10',
november: '11',
december: '12'
};
function customParseAndformat(dateString) {
var parts = dateString.split(' ');
parts[0] = monthLookup[parts[0].toLowerCase()];
parts[1] = parts[1] < 10 ? '0' + parts[1] : parts[1];
return parts.join('/');
}
var myDateString = 'January 3 2016';
document.getElementById('out').textContent = customParseAndformat(myDateString);
<pre id="out"></pre>
Вы можете использовать подобный метод для анализа и создания объекта Date из дискретных значений, что является гораздо более надежным (кросс-среда), чем Date.parse
. Пример
var monthLookup = {
january: '01',
february: '02',
march: '03',
april: '04',
may: '05',
june: '06',
july: '07',
august: '08',
september: '09',
october: '10',
november: '11',
december: '12'
};
function parseAndCreateDate(dateString) {
var parts = dateString.split(' ');
parts[0] = monthLookup[parts[0].toLowerCase()] - 1;
parts[1] = parts[1] < 10 ? '0' + parts[1] : parts[1];
return new Date(parts[2], parts[0], parts[1]);
}
var myDateString = 'January 3 2016';
document.getElementById('out').textContent = parseAndCreateDate(myDateString).toDateString();
<pre id="out"></pre>
Теперь вы можете форматировать, как вы хотите от возвращенного объекта Date, используя свои методы.
Where can I find documentation on formatting a date in JavaScript?
Вы не хватает чего-то, что это недопустимый дата. Действительной датой будет то, что соответствует RFC2822 или ISO 8601 – adeneo
Просто используйте momentjs –
С другой стороны, это действительно работает для меня, но это может быть зависимо от браузера/локали, 'Date.parse', как известно, неустойчиво, когда вы его кормите странные даты. – adeneo