У меня есть строка даты "Sunday, February 28, 2010", которую я хотел бы преобразовать в объект даты js, отформатированный @MM/DD/YYYY, но не знаю, как это сделать. Какие-либо предложения?
Jquery/javascript конвертировать дату строки на сегодняшний день
Ответ 1
Я бы взял date.js, иначе вам нужно будет свернуть свою собственную функцию форматирования.
Ответ 2
Если вы работаете с jQuery, вы можете использовать функцию parseDate библиотеки datepicker UI для преобразования вашей строки в дату:
var d = $.datepicker.parseDate("DD, MM dd, yy", "Sunday, February 28, 2010");
а затем выполните его с помощью метода formatDate, чтобы получить его в нужный формат строки
var datestrInNewFormat = $.datepicker.formatDate( "mm/dd/yy", d);
Если вы не работаете с jQuery, конечно, это, вероятно, не лучший план, так как вам понадобится ядро jQuery, а также модуль пользовательского интерфейса datepicker... лучше всего пойти с предложением Segfault выше, чтобы использовать date.js.
НТН
Ответ 3
var stringDate = "Sunday, February 28, 2010";
var months = ["January", "February", "March"]; // You add the rest :-)
var m = /(\w+) (\d+), (\d+)/.exec(stringDate);
var date = new Date(+m[3], months.indexOf(m[1]), +m[2]);
Метод indexOf
на массивах поддерживается только в новых браузерах (т.е. не в IE). Вам нужно будет выполнить поиск самостоятельно или использовать одну из многих библиотек, которые обеспечивают ту же функциональность.
Также в коде отсутствует проверка ошибок, которая должна быть добавлена. (Строка, не соответствующая регулярному выражению, не существующим месяцам и т.д.)
Ответ 4
Если вам это нужно только один раз, он перегружает загрузку плагина.
Для даты "dd/mm/yyyy" это работает для меня:
new Date(d.date.substring(6, 10),d.date.substring(3, 5)-1,d.date.substring(0, 2));
Просто инвертируйте месяц и день для mm/dd/yyyy, синтаксис
new Date(y,m,d)
Ответ 5
Я использовал функцию javascript funtion toLocaleDateString, чтобы получить
var Today = new Date();
var r = Today.toLocaleDateString();
Результат r будет
11/29/2016
Дополнительная информация: http://www.w3schools.com/jsref/jsref_tolocaledatestring.asp
Ответ 6
Используйте момент js для любой операции с датой.
console.log(moment("Sunday, February 28, 2010").format('MM/DD/YYYY'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>