Более чистый способ конвертировать дд-мм-гггг в формат мм-дд-гггг в Javascript - PullRequest
7 голосов
/ 13 июля 2011

У меня есть эта дата в виде строки со мной 15-07-2011 в формате dd-mm-yyyy.Мне нужно было создать Date объект из этой строки.Поэтому мне нужно преобразовать дату в формате dd-mm-yyyy в mm-dd-yyyy.

Я сделал следующее.

var myDate = '15-07-2011';
var chunks = myDate.split('-');

var formattedDate = chunks[1]+'-'+chunks[0]+'-'+chunks[2];

Теперь я получил строку 07-15-2011 в формате mm-dd-yyyy и могу передать ее конструктору Date() для создания объекта Date.Я хотел бы знать, есть ли более чистый способ сделать это.

Ответы [ 9 ]

5 голосов
/ 13 июля 2011

Это выглядит очень чисто, как есть.

2 голосов
/ 13 июля 2011

Переупорядочение фрагментов строки - это совершенно «чистый» и законный способ изменить формат даты.

Однако, если вас это не устраивает (может быть, вы хотите знать, что изменяемая строка на самом деле является действительной датой?), Тогда я рекомендую вам взглянуть на DateJS , которая является полнофункциональной библиотекой обработки дат для Javascript.

1 голос
/ 13 июля 2011
var c = '01-01-2011'.split('-');
var d = new Date(c[2],c[1]-1,c[0]);
1 голос
/ 13 июля 2011

Если вы хотите, вы можете сократить некоторые переменные.

var date = '15-07-2011'.split('-');
date = date[1]+'-'+date[0]+'-'+date[2];

Если вы хотите один вкладыш

var date = '15-07-2011'.replace(/(\d*)-(\d*)-(\d*)/,'$2-$1-$3')
1 голос
/ 13 июля 2011
var formattedDate = chunks[1] + '-' + chunks[0] + '-' + chunks.pop();
1 голос
/ 13 июля 2011

Зависит от того, что вы подразумеваете под уборщиком

var myDate = '15-07-2011';
var chunks = myDate.split('-');
var formattedDate = [chunks[1],chunks[0],chunks[2]].join("-");

Кто-то скажет, что это чище, но в сущности то же самое.

0 голосов
/ 02 ноября 2011

Я написал библиотеку для разбора, обработки и форматирования строк с именем Moment.js

var date = moment('15-07-2011', 'DD-MM-YYYY').format('DD-MM-YYYY');
0 голосов
/ 13 июля 2011

Я добавлю мое мнение, что ваше решение совершенно правильно, но если вы хотите что-то другое:

var myDate = '15-07-2011';
myDate.split('-').reverse().join('-');

даст вам «2011-07-15», который, хотя и не совсем то, что вы просили, будет правильно проанализирован Date

0 голосов
/ 13 июля 2011

Попробуйте

myDate.format("mm-dd-yyyy");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...