Преобразовать гггг-мм-дд в другой формат даты в Javascript - PullRequest
2 голосов
/ 24 декабря 2011

Я пытаюсь преобразовать "1983-24-12" в 24 декабря 1983 года, используя Javascript.

Есть ли у нас какая-либо готовая функция в Javascript, которая делает это преобразование таким же, как simpledateformat в Java?

Я пытаюсь не брать месяцы в Массивы, а затем делать манипуляции.

Мой код указан ниже.

//For Date Format
    months = ["", "January", "February", "March", "April", "May", "June",           "July", "August", "September", "October", "November", "December"];     
    dob = responseObj.data.personDetail.birthDate.split('-');   
    month = months[dob[1]];
    responseObj.data.personDetail.birthDate = month +" "+dob[2] +","+dob[0];

Пожалуйста, помогите.

Ответы [ 4 ]

7 голосов
/ 24 декабря 2011

Если вы не хотите использовать библиотеку, почему бы просто не разделить строку даты и придумать собственную дату?

var str_date = "1983-24-12",
    arr_date = str_date.split('-'),
    months   = ['', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];

alert(months[arr_date[2]] + ' ' + arr_date[1] + ', ' + arr_date[0]);

Демо: http://jsfiddle.net/9xeBZ/

JavaScript имеет объект Date(): https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date

Проблема в том, что объект JavaScript Date() не будет возвращать строковое представление месяца. Так что в какой-то момент вам придется создать эту логику самостоятельно. Также опубликованный вами формат («1983-24-12») является недопустимым форматом для анализа с объектом Date().

2 голосов
/ 24 декабря 2011

РЕДАКТИРОВАТЬ: Поскольку вы упомянули, что вы используете Sencha, вы можете использовать Ext.Date, чтобы добавить расширенный формат даты и синтаксический анализ:

Набор полезных статических методов для работы с датой. Обратите внимание, что если Ext.Date требуется и загружен, он скопирует все методы / свойства в этот объект для удобства.

Вы можете найти больше информации здесь: http://docs.sencha.com/ext-js/4-0/#!/api/Ext.Date

Два метода, которые могут оказаться полезными: parse и format


В качестве альтернативы, виджет DatePicker пользовательского интерфейса JQuery реализует очень надежный синтаксический анализатор и форматер даты, который можно использовать в своем собственном коде, например:

var parsedDate = $.DatePicker.parseDate("yy-m-d", "1983-24-12");
var outputString = $.DatePicker.formatDate("MM d, yy", parsedDate);
// outputString = "December 24, 1983"

Соответствующие функции здесь parseDate и formatDate .

Существует одна проблема, однако, чтобы использовать ее, вам нужно будет включить JQuery и JQuery UI в качестве сценариев в ваш код, что, вероятно, немного излишне для того, что вам нужно, и другие ответы могут, возможно, лучше удовлетворить ваши потребности .

2 голосов
/ 24 декабря 2011

Если я вас правильно понимаю, вы пытаетесь переформатировать дату, для которой быстрый поиск в Google вывел это http://blog.stevenlevithan.com/archives/date-time-format, которое выглядит как то, что вы хотите.

2 голосов
/ 24 декабря 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...