Получите Локаль Короткий Формат даты с помощью JavaScript

Есть ли так или иначе, мы можем знать использование JavaScript Короткий Формат даты, используемый в Панели управления-> Региональный и Настройки Языка?

Я знаю использование комбинации следующих, мы можем получить Локаль Длинный формат Имени

toString()
toLocaleString()
toLocaleDateString()
toLocaleTimeString()

Но нет никакой прямой функции в JavaScript как toLocaleShortDateString().

Действительно ли там какие-либо сценарии доступны для обнаружения, каков пользователь, устанавливающий?

Спасибо.

66
задан Marcel Korpel 25 June 2010 в 01:27
поделиться

1 ответ

Я не знаю способа сделать это (вы можете получить язык и попытаться вычесть из него локаль).

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

function getShortDateFormat() {
    var d = new Date(1992, 0, 7);
    var s = d.toLocaleDateString();

    function formatReplacer(str) {
        var num = parseInt(str);
        switch (num % 100) {
            case 92:
                return str.replace(/.{1}/g, "Y");
            case 1:
                return str.length == 1 ? "mM" : "MM"
            case 7:
                return str.length == 1 ? "dD" : "DD"
        }
    }

    shortDateFormat = s.replace(/\d+/g, formatReplacer);
    return shortDateFormat;
}

getShortDateFormat();

Выводимый формат будет следующим:

  • Y: количество цифр для представления лет
  • dD = короткий день (т.е. используйте только одну цифру, когда это возможно)
  • DD = длинный день (т.е. две цифры всегда)
  • mM/MM - то же самое для месяцев

Таким образом, в моем браузере, короткий формат даты, который вы получите, будет "MM/DD/YYYY".

5
ответ дан 24 November 2019 в 14:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: