jquery / javascript конвертировать строку даты в дату - PullRequest
32 голосов
/ 04 июня 2010

У меня есть строка даты "Sunday, 28 февраля 2010", которую я хотел бы преобразовать в объект даты js в формате @ MM / DD / YYYY, но не знаю как. Какие-либо предложения?

Ответы [ 6 ]

99 голосов
/ 29 июля 2011

Если вы работаете с jQuery, вы можете использовать функцию parseDate библиотеки пользовательского интерфейса datepicker для преобразования вашей строки в дату:

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 .

НТН

22 голосов
/ 04 июня 2010

Я бы взял date.js , иначе вам придется свернуть свою собственную функцию форматирования.

4 голосов
/ 04 июня 2010
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). Вам нужно будет выполнить поиск самостоятельно или использовать одну из множества библиотек, которые предоставляют те же функции.

Также в коде отсутствует проверка ошибок, которая должна быть добавлена. (Строка, не соответствующая регулярному выражению, несуществующие месяцы и т. Д.)

3 голосов
/ 29 ноября 2016

Я использовал функцию даты javascript toLocaleDateString, чтобы получить

var Today = new Date();
var r = Today.toLocaleDateString();

Результат r будет

11/29/2016

Больше информации на: http://www.w3schools.com/jsref/jsref_tolocaledatestring.asp

3 голосов
/ 30 января 2016

Если вам нужен только один раз, загрузка плагина излишне.

Для даты "дд / мм / гггг" у меня это работает:

new Date(d.date.substring(6, 10),d.date.substring(3, 5)-1,d.date.substring(0, 2));

Просто инвертируйте месяц и день для мм / дд / гггг, синтаксис new Date(y,m,d)

1 голос
/ 24 марта 2017

Используйте момент js для любой операции с датой.

https://momentjs.com/

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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...