форматирование строки даты - PullRequest
3 голосов
/ 03 февраля 2010

Лучший способ взять строку, которая форматируется как ...

YYYY-MM-DD

и сделать ее похожей на ...

MM/DD/YYYY

Причина, по которой это не объект даты в javascript, заключается в том, что я работаю с большими объемами данных, и эти даты извлекаются из базы данных.

Не вижу необходимости преобразовывать его в датуобъект.

Ответы [ 4 ]

4 голосов
/ 03 февраля 2010

Как насчет:

s.substr(5,2) + '/' + s.substr(8) + '/' + s.substr(0,4)
1 голос
/ 03 февраля 2010

Если вы замените дефисы на слэши, которые он будет анализировать, то вы можете использовать функции даты, чтобы получить различные компоненты (или преобразовать в строку, используя одну из различных функций toString ()).

var date = new Date( Date.parse( old.replace(/-/g,'/') ) );
alert( date.getMonth() + '/' + date.getDate() + '/' + date.getFullYear() );

Преимущество заключается в возможности использовать дату в качестве даты для расчетов, а не просто выполнять форматирование строки. Если форматирование строк - это все, что вам нужно AND , ваши строки даты всегда действительны, тогда, вероятно, лучший способ справиться с этим - использование метода substr @ Guffa.

1 голос
/ 03 февраля 2010

Вы можете использовать регулярное выражение в JavaScript (при условии JS, потому что ваш вопрос помечен как таковой):

var date = "2010-05-09";
var formatted = date.replace(/([0-9]{4})-([0-9]{2})-([0-9]{2})/, "$2/$3/$1")

Что мне нравится в этом больше, чем использование подстроки, так это то, что кажется более очевидным, что делается.

1 голос
/ 03 февраля 2010

Грубой силой вы можете сделать что-то вроде:

var old = '2010-02-03'.split('-');
var desired = old[1] + '/' + old[2] + '/' + old[0];

Сохраняет необходимость работать с объектом Date.

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