формат даты javascript (международные настройки) - PullRequest
3 голосов
/ 22 апреля 2011

JavaScript Date.toLocaleDateString () глупо.

Мне нужна функция, которая позволяет упростить дату в соответствии с предпочтениями.

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

Я объясню: «ММ / ДД / ГГГГ» прекрасно работает для США и всех, кто хочет с ними смириться. «ДД / ММ / ГГГГ» является наиболее распространенным форматом для людей, заинтересованных в коротком простом формате даты. «Weekday, Month DayOfMonth, Year» полезен только в том случае, если требуется сверхдлинный и зависящий от языка вывод.

Я мог бы использовать это:

var s = "/";
if(locale=='us')
  var dateString = Date.getDate()+s+Date.getDay()+s+Date.getFullYear();
else
  var dateString = Date.getDay()+s+Date.getDate()+s+Date.getFullYear();

Но я ищу более элегантное решение, которое позволило бы мне сохранять маску даты или строку формата, чтобы люди могли изменять способ отображения своих дат в соответствии со своими вкусами. (Даже очень длинный, зависимый от языка, если им это нравится.)

Должен ли я повторно создать прототип метода Date.toString () для интерпретации параметров? Есть ли лучший способ?

Ответы [ 2 ]

2 голосов
/ 06 июня 2018

Вы можете использовать DateTimeFormat Api.

var now = new Date(0)
console.log(new Intl.DateTimeFormat('en-US').format(now)); //12/31/1969
console.log(new Intl.DateTimeFormat('en-GB').format(now)); //31/12/1969

См. Эту ссылку для документации Mozilla: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat

ПЛЮСЫ:

  • вам не нужно добавлять больше библиотек в ваш проект, увеличивая размер пачки.
  • Вам не нужно беспокоиться о поддержке браузера, потому что почти каждый браузер поддерживает ее. https://caniuse.com/#search=intl

PS: если вас не волнует размер пакета, и вы хотите что-то более "удобное для пользователя" и простое в использовании, посмотрите moment.js или luxon , они оба великолепны библиотеки для операций с датами.

2 голосов
/ 29 июня 2012

Я столкнулся с очень мощной библиотекой, которая заботится о датах и ​​общем форматировании: http://blog.stevenlevithan.com/archives/date-time-format (Неправильная ссылка) http://jawe.net/wiki/dev/jsdateformat/home

Довольно мощная и настраиваемая.(Он поддерживает необходимые мне форматы в стиле java, такие как формат даты "MEDIUM")

Момент кажется полезным и полным (только без среднего формата): https://github.com/timrwood/moment

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