Как преобразовать формат даты

У меня есть «пятница, 02 апреля 2010 г.» в качестве даты, теперь я хочу отображать «02.04.2010», если язык браузера выбран английский, и «02.04.2010», если язык браузера выбран как немецкий. Все, что я хочу, это отображать дату в соответствии с форматом браузера.

Любая идея, как это можно сделать?


person Vinay Pandey    schedule 02.04.2010    source источник
comment
Вам нужно разобрать дату? Или это уже значение даты?   -  person Alsciende    schedule 02.04.2010
comment
это уже значение даты, но оно имеет формат даты сервера, и я должен отображать его в соответствии с форматом даты браузера.   -  person Vinay Pandey    schedule 02.04.2010


Ответы (2)


Это довольно быстро усложняется, лучше всего найти библиотеку для этого.

Например, есть DateJS, который является бесплатным и открытым и поддерживает около 150 локалей, хотя и с разными файлами для каждый, что может быть проблемой с точки зрения преобразования вашего формата ввода, если ваш ввод всегда на английском языке. Если есть шанс, вы можете изменить свой ввод на что-то интернационализированное, например ISO 8601 (подробнее здесь и здесь), это значительно упростит локализацию ввода.

person T.J. Crowder    schedule 02.04.2010
comment
@TJ, значит, встроенной поддержки нет, и мне нужно научиться использовать DateJS или другой такой javascript? - person Vinay Pandey; 02.04.2010
comment
@vinay_rockin: Это зависит от вашего определения встроенного. Например, вы можете самостоятельно проанализировать эту строку, а затем использовать конструктор Date(year, month, day) (не то, чтобы это вам сильно помогло). Единственная встроенная поддержка анализа строк даты ищет очень специфический формат, к сожалению, см. раздел 15.9 (в частности, 15.9.1.15 и 15.9.4.2) спецификации: ecma-international.org/publications/standards/Ecma-262.htm (обратите внимание, что старые Реализации JavaScript не поддерживают такое использование ISO 8601 и требуют еще более неясного формата даты.) - person T.J. Crowder; 02.04.2010
comment
Дата (год, месяц, день) снова даст мне пятницу, 02 апреля 2010 г., теперь, как мне отобразить в качестве выбранного формата даты браузера (мм/дд/гггг или дд/мм/гггг или аналогичные имеют другие разделители, такие как :,- вместо /), что является исходным вопросом. - person Vinay Pandey; 02.04.2010
comment
@vinay_rockin: Следовательно, мой комментарий не очень вам поможет. :-) Опять же, вам придется либо вручную кодировать это, либо использовать библиотеку. Я настоятельно рекомендую использовать библиотеку; нет смысла изобретать велосипед. - person T.J. Crowder; 02.04.2010
comment
@TJ, понял, что сейчас я буду использовать одну из библиотек и посмотрю, как пойдет. Большое спасибо, кстати, если вы найдете что-то полезное в любое время в будущем, пожалуйста, дайте мне знать. - person Vinay Pandey; 02.04.2010
comment
@vinay_rockin: Рад, что помог. - person T.J. Crowder; 02.04.2010

person    schedule
comment
@Smack, так ты имеешь в виду, что простого выхода нет, и я должен проверить языки, ориентированные на более широкую аудиторию? - person Vinay Pandey; 02.04.2010
comment
Вы хотите общее решение для всех языков? Я думаю, что другой ответ выглядит хорошо. - person ; 02.04.2010