使用javascript获取区域设置短日期格式

lel*_*lol 66 javascript datetime

反正我们可以使用JavaScript控制面板中使用的短日期格式 - >区域和语言设置吗?

我知道使用以下组合我们可以获得Locale Long Name格式

toString()
toLocaleString()
toLocaleDateString()
toLocaleTimeString()
Run Code Online (Sandbox Code Playgroud)

但是在JavaScript中没有直接的功能toLocaleShortDateString().

是否有任何脚本可以找出用户设置是什么?

谢谢.

mwr*_*wrf 113

function getLocaleDateString(){

var formats = {
   "ar-SA" : "dd/MM/yy",
   "bg-BG" : "dd.M.yyyy",
   "ca-ES" : "dd/MM/yyyy",
   "zh-TW" : "yyyy/M/d",
   "cs-CZ" : "d.M.yyyy",
   "da-DK" : "dd-MM-yyyy",
   "de-DE" : "dd.MM.yyyy",
   "el-GR" : "d/M/yyyy",
   "en-US" : "M/d/yyyy",
   "fi-FI" : "d.M.yyyy",
   "fr-FR" : "dd/MM/yyyy",
   "he-IL" : "dd/MM/yyyy",
   "hu-HU" : "yyyy. MM. dd.",
   "is-IS" : "d.M.yyyy",
   "it-IT" : "dd/MM/yyyy",
   "ja-JP" : "yyyy/MM/dd",
   "ko-KR" : "yyyy-MM-dd",
   "nl-NL" : "d-M-yyyy",
   "nb-NO" : "dd.MM.yyyy",
   "pl-PL" : "yyyy-MM-dd",
   "pt-BR" : "d/M/yyyy",
   "ro-RO" : "dd.MM.yyyy",
   "ru-RU" : "dd.MM.yyyy",
   "hr-HR" : "d.M.yyyy",
   "sk-SK" : "d. M. yyyy",
   "sq-AL" : "yyyy-MM-dd",
   "sv-SE" : "yyyy-MM-dd",
   "th-TH" : "d/M/yyyy",
   "tr-TR" : "dd.MM.yyyy",
   "ur-PK" : "dd/MM/yyyy",
   "id-ID" : "dd/MM/yyyy",
   "uk-UA" : "dd.MM.yyyy",
   "be-BY" : "dd.MM.yyyy",
   "sl-SI" : "d.M.yyyy",
   "et-EE" : "d.MM.yyyy",
   "lv-LV" : "yyyy.MM.dd.",
   "lt-LT" : "yyyy.MM.dd",
   "fa-IR" : "MM/dd/yyyy",
   "vi-VN" : "dd/MM/yyyy",
   "hy-AM" : "dd.MM.yyyy",
   "az-Latn-AZ" : "dd.MM.yyyy",
   "eu-ES" : "yyyy/MM/dd",
   "mk-MK" : "dd.MM.yyyy",
   "af-ZA" : "yyyy/MM/dd",
   "ka-GE" : "dd.MM.yyyy",
   "fo-FO" : "dd-MM-yyyy",
   "hi-IN" : "dd-MM-yyyy",
   "ms-MY" : "dd/MM/yyyy",
   "kk-KZ" : "dd.MM.yyyy",
   "ky-KG" : "dd.MM.yy",
   "sw-KE" : "M/d/yyyy",
   "uz-Latn-UZ" : "dd/MM yyyy",
   "tt-RU" : "dd.MM.yyyy",
   "pa-IN" : "dd-MM-yy",
   "gu-IN" : "dd-MM-yy",
   "ta-IN" : "dd-MM-yyyy",
   "te-IN" : "dd-MM-yy",
   "kn-IN" : "dd-MM-yy",
   "mr-IN" : "dd-MM-yyyy",
   "sa-IN" : "dd-MM-yyyy",
   "mn-MN" : "yy.MM.dd",
   "gl-ES" : "dd/MM/yy",
   "kok-IN" : "dd-MM-yyyy",
   "syr-SY" : "dd/MM/yyyy",
   "dv-MV" : "dd/MM/yy",
   "ar-IQ" : "dd/MM/yyyy",
   "zh-CN" : "yyyy/M/d",
   "de-CH" : "dd.MM.yyyy",
   "en-GB" : "dd/MM/yyyy",
   "es-MX" : "dd/MM/yyyy",
   "fr-BE" : "d/MM/yyyy",
   "it-CH" : "dd.MM.yyyy",
   "nl-BE" : "d/MM/yyyy",
   "nn-NO" : "dd.MM.yyyy",
   "pt-PT" : "dd-MM-yyyy",
   "sr-Latn-CS" : "d.M.yyyy",
   "sv-FI" : "d.M.yyyy",
   "az-Cyrl-AZ" : "dd.MM.yyyy",
   "ms-BN" : "dd/MM/yyyy",
   "uz-Cyrl-UZ" : "dd.MM.yyyy",
   "ar-EG" : "dd/MM/yyyy",
   "zh-HK" : "d/M/yyyy",
   "de-AT" : "dd.MM.yyyy",
   "en-AU" : "d/MM/yyyy",
   "es-ES" : "dd/MM/yyyy",
   "fr-CA" : "yyyy-MM-dd",
   "sr-Cyrl-CS" : "d.M.yyyy",
   "ar-LY" : "dd/MM/yyyy",
   "zh-SG" : "d/M/yyyy",
   "de-LU" : "dd.MM.yyyy",
   "en-CA" : "dd/MM/yyyy",
   "es-GT" : "dd/MM/yyyy",
   "fr-CH" : "dd.MM.yyyy",
   "ar-DZ" : "dd-MM-yyyy",
   "zh-MO" : "d/M/yyyy",
   "de-LI" : "dd.MM.yyyy",
   "en-NZ" : "d/MM/yyyy",
   "es-CR" : "dd/MM/yyyy",
   "fr-LU" : "dd/MM/yyyy",
   "ar-MA" : "dd-MM-yyyy",
   "en-IE" : "dd/MM/yyyy",
   "es-PA" : "MM/dd/yyyy",
   "fr-MC" : "dd/MM/yyyy",
   "ar-TN" : "dd-MM-yyyy",
   "en-ZA" : "yyyy/MM/dd",
   "es-DO" : "dd/MM/yyyy",
   "ar-OM" : "dd/MM/yyyy",
   "en-JM" : "dd/MM/yyyy",
   "es-VE" : "dd/MM/yyyy",
   "ar-YE" : "dd/MM/yyyy",
   "en-029" : "MM/dd/yyyy",
   "es-CO" : "dd/MM/yyyy",
   "ar-SY" : "dd/MM/yyyy",
   "en-BZ" : "dd/MM/yyyy",
   "es-PE" : "dd/MM/yyyy",
   "ar-JO" : "dd/MM/yyyy",
   "en-TT" : "dd/MM/yyyy",
   "es-AR" : "dd/MM/yyyy",
   "ar-LB" : "dd/MM/yyyy",
   "en-ZW" : "M/d/yyyy",
   "es-EC" : "dd/MM/yyyy",
   "ar-KW" : "dd/MM/yyyy",
   "en-PH" : "M/d/yyyy",
   "es-CL" : "dd-MM-yyyy",
   "ar-AE" : "dd/MM/yyyy",
   "es-UY" : "dd/MM/yyyy",
   "ar-BH" : "dd/MM/yyyy",
   "es-PY" : "dd/MM/yyyy",
   "ar-QA" : "dd/MM/yyyy",
   "es-BO" : "dd/MM/yyyy",
   "es-SV" : "dd/MM/yyyy",
   "es-HN" : "dd/MM/yyyy",
   "es-NI" : "dd/MM/yyyy",
   "es-PR" : "dd/MM/yyyy",
   "am-ET" : "d/M/yyyy",
   "tzm-Latn-DZ" : "dd-MM-yyyy",
   "iu-Latn-CA" : "d/MM/yyyy",
   "sma-NO" : "dd.MM.yyyy",
   "mn-Mong-CN" : "yyyy/M/d",
   "gd-GB" : "dd/MM/yyyy",
   "en-MY" : "d/M/yyyy",
   "prs-AF" : "dd/MM/yy",
   "bn-BD" : "dd-MM-yy",
   "wo-SN" : "dd/MM/yyyy",
   "rw-RW" : "M/d/yyyy",
   "qut-GT" : "dd/MM/yyyy",
   "sah-RU" : "MM.dd.yyyy",
   "gsw-FR" : "dd/MM/yyyy",
   "co-FR" : "dd/MM/yyyy",
   "oc-FR" : "dd/MM/yyyy",
   "mi-NZ" : "dd/MM/yyyy",
   "ga-IE" : "dd/MM/yyyy",
   "se-SE" : "yyyy-MM-dd",
   "br-FR" : "dd/MM/yyyy",
   "smn-FI" : "d.M.yyyy",
   "moh-CA" : "M/d/yyyy",
   "arn-CL" : "dd-MM-yyyy",
   "ii-CN" : "yyyy/M/d",
   "dsb-DE" : "d. M. yyyy",
   "ig-NG" : "d/M/yyyy",
   "kl-GL" : "dd-MM-yyyy",
   "lb-LU" : "dd/MM/yyyy",
   "ba-RU" : "dd.MM.yy",
   "nso-ZA" : "yyyy/MM/dd",
   "quz-BO" : "dd/MM/yyyy",
   "yo-NG" : "d/M/yyyy",
   "ha-Latn-NG" : "d/M/yyyy",
   "fil-PH" : "M/d/yyyy",
   "ps-AF" : "dd/MM/yy",
   "fy-NL" : "d-M-yyyy",
   "ne-NP" : "M/d/yyyy",
   "se-NO" : "dd.MM.yyyy",
   "iu-Cans-CA" : "d/M/yyyy",
   "sr-Latn-RS" : "d.M.yyyy",
   "si-LK" : "yyyy-MM-dd",
   "sr-Cyrl-RS" : "d.M.yyyy",
   "lo-LA" : "dd/MM/yyyy",
   "km-KH" : "yyyy-MM-dd",
   "cy-GB" : "dd/MM/yyyy",
   "bo-CN" : "yyyy/M/d",
   "sms-FI" : "d.M.yyyy",
   "as-IN" : "dd-MM-yyyy",
   "ml-IN" : "dd-MM-yy",
   "en-IN" : "dd-MM-yyyy",
   "or-IN" : "dd-MM-yy",
   "bn-IN" : "dd-MM-yy",
   "tk-TM" : "dd.MM.yy",
   "bs-Latn-BA" : "d.M.yyyy",
   "mt-MT" : "dd/MM/yyyy",
   "sr-Cyrl-ME" : "d.M.yyyy",
   "se-FI" : "d.M.yyyy",
   "zu-ZA" : "yyyy/MM/dd",
   "xh-ZA" : "yyyy/MM/dd",
   "tn-ZA" : "yyyy/MM/dd",
   "hsb-DE" : "d. M. yyyy",
   "bs-Cyrl-BA" : "d.M.yyyy",
   "tg-Cyrl-TJ" : "dd.MM.yy",
   "sr-Latn-BA" : "d.M.yyyy",
   "smj-NO" : "dd.MM.yyyy",
   "rm-CH" : "dd/MM/yyyy",
   "smj-SE" : "yyyy-MM-dd",
   "quz-EC" : "dd/MM/yyyy",
   "quz-PE" : "dd/MM/yyyy",
   "hr-BA" : "d.M.yyyy.",
   "sr-Latn-ME" : "d.M.yyyy",
   "sma-SE" : "yyyy-MM-dd",
   "en-SG" : "d/M/yyyy",
   "ug-CN" : "yyyy-M-d",
   "sr-Cyrl-BA" : "d.M.yyyy",
   "es-US" : "M/d/yyyy"
};

   return formats[navigator.language] || 'dd/MM/yyyy';

} 
Run Code Online (Sandbox Code Playgroud)

  • 为什么这个列表在互联网上很难找到!! (25认同)
  • 这需要不区分大小写,我的Safari返回en-us. (6认同)
  • 正如这里的评论数量所示,任何依赖于硬编码列表的东西都会很快过时。其他编程解决方案更可靠。 (4认同)
  • `"ko-KR" : "yyyy-MM-dd",` 这不再有效,现在是 `yyyy。毫米。dd` (3认同)
  • 本地格式可以不同(自定义),取决于操作系统 (2认同)
  • 我可以得到这个列表的来源吗? (2认同)
  • @Chexpir Unicode CLDR项目是此列表的最终来源,并且https://github.com/unicode-cldr/cldr-dates-modern是其消耗性稍高的版本。与以上数据相差甚远。:) (2认同)
  • @PaulIrish`(新的Intl.DateTimeFormat()).resolved.pattern`似乎已经不存在了.我得到`Uncaught TypeError:无法读取undefined的属性'pattern',我看到了一些关于删除它的铬bug.`.resolvedOptions()`有效,但不包括模式. (2认同)

小智 45

我认为这是最好的方法......

    var date = new Date();

    var options = {
        weekday: "short",
        year: "numeric",
        month: "2-digit",
        day: "numeric"
    };

console.log(
    date.toLocaleDateString("en", options) //en is language option, you may specify..
);
Run Code Online (Sandbox Code Playgroud)

更多选项及其示例....

 Option         Values and sample output

 weekday        narrow M
                short Mon
                long Monday

 year           2-digit 01
                numeric 2001

 month          2-digit 01
                numeric 1
                narrow J
                short Jan
                long January

day             2-digit 01
                numeric 1

hour            2-digit 12 AM
                numeric 12 AM

minute          2-digit 0
                numeric 0

second          2-digit 0
                numeric 0

timeZoneName    short 1/1/2001 GMT+00:00
                long 1/1/2001 GMT+00:00
Run Code Online (Sandbox Code Playgroud)

  • 对于现在遇到此问题的人来说,支持要好得多。chrome 和 firefox 都支持这些选项已有一段时间了,IE11 及以上版本支持。Safari/ Webkit 仍然不支持 (2认同)
  • 这是很棒的信息。如果您链接到选项的来源会更好。 (2认同)

hol*_*321 13

function getLocaleShortDateString(d)
{
    var f={"ar-SA":"dd/MM/yy","bg-BG":"dd.M.yyyy","ca-ES":"dd/MM/yyyy","zh-TW":"yyyy/M/d","cs-CZ":"d.M.yyyy","da-DK":"dd-MM-yyyy","de-DE":"dd.MM.yyyy","el-GR":"d/M/yyyy","en-US":"M/d/yyyy","fi-FI":"d.M.yyyy","fr-FR":"dd/MM/yyyy","he-IL":"dd/MM/yyyy","hu-HU":"yyyy. MM. dd.","is-IS":"d.M.yyyy","it-IT":"dd/MM/yyyy","ja-JP":"yyyy/MM/dd","ko-KR":"yyyy-MM-dd","nl-NL":"d-M-yyyy","nb-NO":"dd.MM.yyyy","pl-PL":"yyyy-MM-dd","pt-BR":"d/M/yyyy","ro-RO":"dd.MM.yyyy","ru-RU":"dd.MM.yyyy","hr-HR":"d.M.yyyy","sk-SK":"d. M. yyyy","sq-AL":"yyyy-MM-dd","sv-SE":"yyyy-MM-dd","th-TH":"d/M/yyyy","tr-TR":"dd.MM.yyyy","ur-PK":"dd/MM/yyyy","id-ID":"dd/MM/yyyy","uk-UA":"dd.MM.yyyy","be-BY":"dd.MM.yyyy","sl-SI":"d.M.yyyy","et-EE":"d.MM.yyyy","lv-LV":"yyyy.MM.dd.","lt-LT":"yyyy.MM.dd","fa-IR":"MM/dd/yyyy","vi-VN":"dd/MM/yyyy","hy-AM":"dd.MM.yyyy","az-Latn-AZ":"dd.MM.yyyy","eu-ES":"yyyy/MM/dd","mk-MK":"dd.MM.yyyy","af-ZA":"yyyy/MM/dd","ka-GE":"dd.MM.yyyy","fo-FO":"dd-MM-yyyy","hi-IN":"dd-MM-yyyy","ms-MY":"dd/MM/yyyy","kk-KZ":"dd.MM.yyyy","ky-KG":"dd.MM.yy","sw-KE":"M/d/yyyy","uz-Latn-UZ":"dd/MM yyyy","tt-RU":"dd.MM.yyyy","pa-IN":"dd-MM-yy","gu-IN":"dd-MM-yy","ta-IN":"dd-MM-yyyy","te-IN":"dd-MM-yy","kn-IN":"dd-MM-yy","mr-IN":"dd-MM-yyyy","sa-IN":"dd-MM-yyyy","mn-MN":"yy.MM.dd","gl-ES":"dd/MM/yy","kok-IN":"dd-MM-yyyy","syr-SY":"dd/MM/yyyy","dv-MV":"dd/MM/yy","ar-IQ":"dd/MM/yyyy","zh-CN":"yyyy/M/d","de-CH":"dd.MM.yyyy","en-GB":"dd/MM/yyyy","es-MX":"dd/MM/yyyy","fr-BE":"d/MM/yyyy","it-CH":"dd.MM.yyyy","nl-BE":"d/MM/yyyy","nn-NO":"dd.MM.yyyy","pt-PT":"dd-MM-yyyy","sr-Latn-CS":"d.M.yyyy","sv-FI":"d.M.yyyy","az-Cyrl-AZ":"dd.MM.yyyy","ms-BN":"dd/MM/yyyy","uz-Cyrl-UZ":"dd.MM.yyyy","ar-EG":"dd/MM/yyyy","zh-HK":"d/M/yyyy","de-AT":"dd.MM.yyyy","en-AU":"d/MM/yyyy","es-ES":"dd/MM/yyyy","fr-CA":"yyyy-MM-dd","sr-Cyrl-CS":"d.M.yyyy","ar-LY":"dd/MM/yyyy","zh-SG":"d/M/yyyy","de-LU":"dd.MM.yyyy","en-CA":"dd/MM/yyyy","es-GT":"dd/MM/yyyy","fr-CH":"dd.MM.yyyy","ar-DZ":"dd-MM-yyyy","zh-MO":"d/M/yyyy","de-LI":"dd.MM.yyyy","en-NZ":"d/MM/yyyy","es-CR":"dd/MM/yyyy","fr-LU":"dd/MM/yyyy","ar-MA":"dd-MM-yyyy","en-IE":"dd/MM/yyyy","es-PA":"MM/dd/yyyy","fr-MC":"dd/MM/yyyy","ar-TN":"dd-MM-yyyy","en-ZA":"yyyy/MM/dd","es-DO":"dd/MM/yyyy","ar-OM":"dd/MM/yyyy","en-JM":"dd/MM/yyyy","es-VE":"dd/MM/yyyy","ar-YE":"dd/MM/yyyy","en-029":"MM/dd/yyyy","es-CO":"dd/MM/yyyy","ar-SY":"dd/MM/yyyy","en-BZ":"dd/MM/yyyy","es-PE":"dd/MM/yyyy","ar-JO":"dd/MM/yyyy","en-TT":"dd/MM/yyyy","es-AR":"dd/MM/yyyy","ar-LB":"dd/MM/yyyy","en-ZW":"M/d/yyyy","es-EC":"dd/MM/yyyy","ar-KW":"dd/MM/yyyy","en-PH":"M/d/yyyy","es-CL":"dd-MM-yyyy","ar-AE":"dd/MM/yyyy","es-UY":"dd/MM/yyyy","ar-BH":"dd/MM/yyyy","es-PY":"dd/MM/yyyy","ar-QA":"dd/MM/yyyy","es-BO":"dd/MM/yyyy","es-SV":"dd/MM/yyyy","es-HN":"dd/MM/yyyy","es-NI":"dd/MM/yyyy","es-PR":"dd/MM/yyyy","am-ET":"d/M/yyyy","tzm-Latn-DZ":"dd-MM-yyyy","iu-Latn-CA":"d/MM/yyyy","sma-NO":"dd.MM.yyyy","mn-Mong-CN":"yyyy/M/d","gd-GB":"dd/MM/yyyy","en-MY":"d/M/yyyy","prs-AF":"dd/MM/yy","bn-BD":"dd-MM-yy","wo-SN":"dd/MM/yyyy","rw-RW":"M/d/yyyy","qut-GT":"dd/MM/yyyy","sah-RU":"MM.dd.yyyy","gsw-FR":"dd/MM/yyyy","co-FR":"dd/MM/yyyy","oc-FR":"dd/MM/yyyy","mi-NZ":"dd/MM/yyyy","ga-IE":"dd/MM/yyyy","se-SE":"yyyy-MM-dd","br-FR":"dd/MM/yyyy","smn-FI":"d.M.yyyy","moh-CA":"M/d/yyyy","arn-CL":"dd-MM-yyyy","ii-CN":"yyyy/M/d","dsb-DE":"d. M. yyyy","ig-NG":"d/M/yyyy","kl-GL":"dd-MM-yyyy","lb-LU":"dd/MM/yyyy","ba-RU":"dd.MM.yy","nso-ZA":"yyyy/MM/dd","quz-BO":"dd/MM/yyyy","yo-NG":"d/M/yyyy","ha-Latn-NG":"d/M/yyyy","fil-PH":"M/d/yyyy","ps-AF":"dd/MM/yy","fy-NL":"d-M-yyyy","ne-NP":"M/d/yyyy","se-NO":"dd.MM.yyyy","iu-Cans-CA":"d/M/yyyy","sr-Latn-RS":"d.M.yyyy","si-LK":"yyyy-MM-dd","sr-Cyrl-RS":"d.M.yyyy","lo-LA":"dd/MM/yyyy","km-KH":"yyyy-MM-dd","cy-GB":"dd/MM/yyyy","bo-CN":"yyyy/M/d","sms-FI":"d.M.yyyy","as-IN":"dd-MM-yyyy","ml-IN":"dd-MM-yy","en-IN":"dd-MM-yyyy","or-IN":"dd-MM-yy","bn-IN":"dd-MM-yy","tk-TM":"dd.MM.yy","bs-Latn-BA":"d.M.yyyy","mt-MT":"dd/MM/yyyy","sr-Cyrl-ME":"d.M.yyyy","se-FI":"d.M.yyyy","zu-ZA":"yyyy/MM/dd","xh-ZA":"yyyy/MM/dd","tn-ZA":"yyyy/MM/dd","hsb-DE":"d. M. yyyy","bs-Cyrl-BA":"d.M.yyyy","tg-Cyrl-TJ":"dd.MM.yy","sr-Latn-BA":"d.M.yyyy","smj-NO":"dd.MM.yyyy","rm-CH":"dd/MM/yyyy","smj-SE":"yyyy-MM-dd","quz-EC":"dd/MM/yyyy","quz-PE":"dd/MM/yyyy","hr-BA":"d.M.yyyy.","sr-Latn-ME":"d.M.yyyy","sma-SE":"yyyy-MM-dd","en-SG":"d/M/yyyy","ug-CN":"yyyy-M-d","sr-Cyrl-BA":"d.M.yyyy","es-US":"M/d/yyyy"};

    var l=navigator.language?navigator.language:navigator['userLanguage'],y=d.getFullYear(),m=d.getMonth()+1,d=d.getDate();
    f=(l in f)?f[l]:"MM/dd/yyyy";
    function z(s){s=''+s;return s.length>1?s:'0'+s;}
    f=f.replace(/yyyy/,y);f=f.replace(/yy/,String(y).substr(2));
    f=f.replace(/MM/,z(m));f=f.replace(/M/,m);
    f=f.replace(/dd/,z(d));f=f.replace(/d/,d);
    return f;
}
Run Code Online (Sandbox Code Playgroud)

使用:

shortedDate=getLocaleShortDateString(new Date(1992, 0, 7));
Run Code Online (Sandbox Code Playgroud)


ger*_*rod 12

我在尝试弄清楚如何显示日期选择器字段的占位符时偶然发现了这个线程。最终,我希望看到基于浏览器区域设置的用户友好格式字符串(例如,'en-AU'我想显示'dd/mm/yyyy')。

多年来,似乎有多种方法可以实现这一目标。new Intl.DateTimeFormat("en-AU")).resolved.pattern看起来它曾经得到了相当好的支持,但现在已被删除以支持formatToParts.

使用formatToParts将日期分成其组成部分可以让我们推断出模式字符串 - 这是我编写的一个基本函数来做到这一点:

/**
 * Get the date format pattern for the given locale. 
 * @example 
 *     getDateFormatPattern('en-AU');   // dd/mm/yyyy
 *     getDateFormatPattern('en-US');   // m/d/yyyy
 */
const getDateFormatPattern = (locale: string) => {
    const getPatternForPart = (part: Intl.DateTimeFormatPart) => {
        switch (part.type) {
            case 'day':
                return 'd'.repeat(part.value.length);
            case 'month':
                return 'm'.repeat(part.value.length);
            case 'year':
                return 'y'.repeat(part.value.length);
            case 'literal':
                return part.value;
            default:
                console.log('Unsupported date part', part);
                return '';
        }
    };

    return new Intl.DateTimeFormat(locale).formatToParts(new Date('2021-01-01'))
        .map(getPatternForPart)
        .join('');
};
Run Code Online (Sandbox Code Playgroud)


bri*_*ary 9

无法做到.

跨浏览器JavaScript无法使用用户在提供此类区域自定义的平台上选择的实际短日期格式.此外,JavaScript存在巨大的漏洞,其中涉及任何类型的格式.看看零填充是多么麻烦!

您可以不遗余力地获取语言设置,并获得该语言环境的典型格式.当你甚至不知道它是否是正确的语言环境时(我打赌国际语言标题通常不正确或不够具体),或者如果用户已将格式定制为其他内容,那么这是很多工作.

您可以尝试使用客户端VBScript(它具有所有这些区域格式排列的功能),但这不是一个好主意,因为它是一种垂死的(死的?)特定于IE的技术.

您还可以尝试使用Java/Flash/Silverlight来挖掘格式.这也是一项额外的工作,但可能是获得成功的最佳机会.您希望为会话缓存它以最小化开销.

希望HTML5 <time>元素可以为i18n日期/时间显示提供一些缓解.


Fra*_*986 8

短日期模式:

\n
const shortDatePatterns = {\n'aa-DJ': "dd/MM/yyyy",\n'aa-ER': "dd/MM/yyyy",\n'aa-ET': "dd/MM/yyyy",\n'af': "yyyy-MM-dd",\n'af-NA': "yyyy-MM-dd",\n'af-ZA': "yyyy-MM-dd",\n'agq-CM': "d/M/yyyy",\n'ak-GH': "yyyy/MM/dd",\n'am': "dd/MM/yyyy",\n'am-ET': "dd/MM/yyyy",\n'ar': "dd/MM/yy",\n'ar-001': "d/M/yyyy",\n'ar-AE': "dd/MM/yyyy",\n'ar-BH': "dd/MM/yyyy",\n'ar-DJ': "d/M/yyyy",\n'ar-DZ': "dd-MM-yyyy",\n'ar-EG': "dd/MM/yyyy",\n'ar-ER': "d/M/yyyy",\n'ar-IL': "d/M/yyyy",\n'ar-IQ': "dd/MM/yyyy",\n'ar-JO': "dd/MM/yyyy",\n'ar-KM': "d/M/yyyy",\n'ar-KW': "dd/MM/yyyy",\n'ar-LB': "dd/MM/yyyy",\n'ar-LY': "dd/MM/yyyy",\n'ar-MA': "dd-MM-yyyy",\n'ar-MR': "d/M/yyyy",\n'ar-OM': "dd/MM/yyyy",\n'ar-PS': "d/M/yyyy",\n'ar-QA': "dd/MM/yyyy",\n'ar-SA': "dd/MM/yy",\n'ar-SD': "d/M/yyyy",\n'ar-SO': "d/M/yyyy",\n'ar-SS': "d/M/yyyy",\n'ar-SY': "dd/MM/yyyy",\n'ar-TD': "d/M/yyyy",\n'ar-TN': "dd-MM-yyyy",\n'ar-YE': "dd/MM/yyyy",\n'arn-CL': "dd-MM-yyyy",\n'as': "dd-MM-yyyy",\n'as-IN': "dd-MM-yyyy",\n'asa-TZ': "dd/MM/yyyy",\n'ast-ES': "d/M/yyyy",\n'az': "dd.MM.yyyy",\n'az-Cyrl-AZ': "dd.MM.yyyy",\n'az-Latn-AZ': "dd.MM.yyyy",\n'ba': "dd.MM.yy",\n'ba-RU': "dd.MM.yy",\n'bas-CM': "d/M/yyyy",\n'be': "dd.MM.yy",\n'be-BY': "dd.MM.yy",\n'bem-ZM': "dd/MM/yyyy",\n'bez-TZ': "dd/MM/yyyy",\n'bg': "d.M.yyyy '\xd0\xb3.'",\n'bg-BG': "d.M.yyyy '\xd0\xb3.'",\n'bin-NG': "d/M/yyyy",\n'bm': "d/M/yyyy",\n'bm-Latn-ML': "d/M/yyyy",\n'bn': "d/M/yyyy",\n'bn-BD': "d/M/yyyy",\n'bn-IN': "dd-MM-yy",\n'bo': "yyyy/M/d",\n'bo-CN': "yyyy/M/d",\n'bo-IN': "yyyy-MM-dd",\n'br': "dd/MM/yyyy",\n'br-FR': "dd/MM/yyyy",\n'brx-IN': "M/d/yyyy",\n'bs': "d.M.yyyy.",\n'bs-Cyrl-BA': "d.M.yyyy",\n'bs-Latn-BA': "d.M.yyyy.",\n'byn-ER': "dd/MM/yyyy",\n'ca': "d/M/yyyy",\n'ca-AD': "d/M/yyyy",\n'ca-ES': "d/M/yyyy",\n'ca-ES-valencia': "d/M/yyyy",\n'ca-FR': "d/M/yyyy",\n'ca-IT': "d/M/yyyy",\n'ce-RU': "yyyy-MM-dd",\n'cgg-UG': "dd/MM/yyyy",\n'chr-Cher-US': "M/d/yyyy",\n'co': "dd/MM/yyyy",\n'co-FR': "dd/MM/yyyy",\n'cs-CZ': "dd.MM.yyyy",\n'cu': "yyyy.MM.dd",\n'cu-RU': "yyyy.MM.dd",\n'cy': "dd/MM/yyyy",\n'cy-GB': "dd/MM/yyyy",\n'da-DK': "dd-MM-yyyy",\n'da-GL': "dd/MM/yyyy",\n'dav-KE': "dd/MM/yyyy",\n'de': "dd.MM.yyyy",\n'de-AT': "dd.MM.yyyy",\n'de-BE': "dd.MM.yyyy",\n'de-CH': "dd.MM.yyyy",\n'de-DE': "dd.MM.yyyy",\n'de-IT': "dd.MM.yyyy",\n'de-LI': "dd.MM.yyyy",\n'de-LU': "dd.MM.yyyy",\n'dje-NE': "d/M/yyyy",\n'dsb-DE': "d. M. yyyy",\n'dua-CM': "d/M/yyyy",\n'dv-MV': "dd/MM/yy",\n'dyo-SN': "d/M/yyyy",\n'dz': "yyyy-MM-dd",\n'dz-BT': "yyyy-MM-dd",\n'ebu-KE': "dd/MM/yyyy",\n'ee': "M/d/yyyy",\n'ee-GH': "M/d/yyyy",\n'ee-TG': "M/d/yyyy",\n'el-CY': "d/M/yyyy",\n'el-GR': "d/M/yyyy",\n'en-001': "dd/MM/yyyy",\n'en-029': "dd/MM/yyyy",\n'en-150': "dd/MM/yyyy",\n'en-AG': "dd/MM/yyyy",\n'en-AI': "dd/MM/yyyy",\n'en-AS': "M/d/yyyy",\n'en-AT': "dd/MM/yyyy",\n'en-AU': "d/MM/yyyy",\n'en-BB': "dd/MM/yyyy",\n'en-BE': "dd/MM/yyyy",\n'en-BI': "M/d/yyyy",\n'en-BM': "dd/MM/yyyy",\n'en-BS': "dd/MM/yyyy",\n'en-BW': "dd/MM/yyyy",\n'en-BZ': "dd/MM/yyyy",\n'en-CA': "yyyy-MM-dd",\n'en-CC': "dd/MM/yyyy",\n'en-CH': "dd/MM/yyyy",\n'en-CK': "dd/MM/yyyy",\n'en-CM': "dd/MM/yyyy",\n'en-CX': "dd/MM/yyyy",\n'en-CY': "dd/MM/yyyy",\n'en-DE': "dd/MM/yyyy",\n'en-DK': "dd/MM/yyyy",\n'en-DM': "dd/MM/yyyy",\n'en-ER': "dd/MM/yyyy",\n'en-FI': "dd/MM/yyyy",\n'en-FJ': "dd/MM/yyyy",\n'en-FK': "dd/MM/yyyy",\n'en-FM': "dd/MM/yyyy",\n'en-GB': "dd/MM/yyyy",\n'en-GD': "dd/MM/yyyy",\n'en-GG': "dd/MM/yyyy",\n'en-GH': "dd/MM/yyyy",\n'en-GI': "dd/MM/yyyy",\n'en-GM': "dd/MM/yyyy",\n'en-GU': "M/d/yyyy",\n'en-GY': "dd/MM/yyyy",\n'en-HK': "d/M/yyyy",\n'en-ID': "dd/MM/yyyy",\n'en-IE': "dd/MM/yyyy",\n'en-IL': "dd/MM/yyyy",\n'en-IM': "dd/MM/yyyy",\n'en-IN': "dd-MM-yyyy",\n'en-IO': "dd/MM/yyyy",\n'en-JE': "dd/MM/yyyy",\n'en-JM': "d/M/yyyy",\n'en-KE': "dd/MM/yyyy",\n'en-KI': "dd/MM/yyyy",\n'en-KN': "dd/MM/yyyy",\n'en-KY': "dd/MM/yyyy",\n'en-LC': "dd/MM/yyyy",\n'en-LR': "dd/MM/yyyy",\n'en-LS': "dd/MM/yyyy",\n'en-MG': "dd/MM/yyyy",\n'en-MH': "M/d/yyyy",\n'en-MO': "dd/MM/yyyy",\n'en-MP': "M/d/yyyy",\n'en-MS': "dd/MM/yyyy",\n'en-MT': "dd/MM/yyyy",\n'en-MU': "dd/MM/yyyy",\n'en-MW': "dd/MM/yyyy",\n'en-MY': "d/M/yyyy",\n'en-NA': "dd/MM/yyyy",\n'en-NF': "dd/MM/yyyy",\n'en-NG': "dd/MM/yyyy",\n'en-NL': "dd/MM/yyyy",\n'en-NR': "dd/MM/yyyy",\n'en-NU': "dd/MM/yyyy",\n'en-NZ': "d/MM/yyyy",\n'en-PG': "dd/MM/yyyy",\n'en-PH': "dd/MM/yyyy",\n'en-PK': "dd/MM/yyyy",\n'en-PN': "dd/MM/yyyy",\n'en-PR': "M/d/yyyy",\n'en-PW': "dd/MM/yyyy",\n'en-RW': "dd/MM/yyyy",\n'en-SB': "dd/MM/yyyy",\n'en-SC': "dd/MM/yyyy",\n'en-SD': "dd/MM/yyyy",\n'en-SE': "yyyy-MM-dd",\n'en-SG': "d/M/yyyy",\n'en-SH': "dd/MM/yyyy",\n'en-SI': "dd/MM/yyyy",\n'en-SL': "dd/MM/yyyy",\n'en-SS': "dd/MM/yyyy",\n'en-SX': "dd/MM/yyyy",\n'en-SZ': "dd/MM/yyyy",\n'en-TC': "dd/MM/yyyy",\n'en-TK': "dd/MM/yyyy",\n'en-TO': "dd/MM/yyyy",\n'en-TT': "dd/MM/yyyy",\n'en-TV': "dd/MM/yyyy",\n'en-TZ': "dd/MM/yyyy",\n'en-UG': "dd/MM/yyyy",\n'en-UM': "M/d/yyyy",\n'en-US': "M/d/yyyy",\n'en-VC': "dd/MM/yyyy",\n'en-VG': "dd/MM/yyyy",\n'en-VI': "M/d/yyyy",\n'en-VU': "dd/MM/yyyy",\n'en-WS': "dd/MM/yyyy",\n'en-ZA': "yyyy/MM/dd",\n'en-ZM': "dd/MM/yyyy",\n'en-ZW': "d/M/yyyy",\n'eo-001': "yyyy-MM-dd",\n'es': "dd/MM/yyyy",\n'es-419': "d/M/yyyy",\n'es-AR': "d/M/yyyy",\n'es-BO': "d/M/yyyy",\n'es-BR': "d/M/yyyy",\n'es-BZ': "d/M/yyyy",\n'es-CL': "dd-MM-yyyy",\n'es-CO': "d/MM/yyyy",\n'es-CR': "d/M/yyyy",\n'es-CU': "d/M/yyyy",\n'es-DO': "d/M/yyyy",\n'es-EC': "d/M/yyyy",\n'es-ES': "dd/MM/yyyy",\n'es-GQ': "d/M/yyyy",\n'es-GT': "d/MM/yyyy",\n'es-HN': "d/M/yyyy",\n'es-MX': "dd/MM/yyyy",\n'es-NI': "d/M/yyyy",\n'es-PA': "MM/dd/yyyy",\n'es-PE': "d/MM/yyyy",\n'es-PH': "d/M/yyyy",\n'es-PR': "MM/dd/yyyy",\n'es-PY': "d/M/yyyy",\n'es-SV': "d/M/yyyy",\n'es-US': "M/d/yyyy",\n'es-UY': "d/M/yyyy",\n'es-VE': "d/M/yyyy",\n'et': "dd.MM.yyyy",\n'et-EE': "dd.MM.yyyy",\n'eu-ES': "yyyy/M/d",\n'ewo-CM': "d/M/yyyy",\n'fa-IR': "dd/MM/yyyy",\n'ff-CM': "d/M/yyyy",\n'ff-GN': "d/M/yyyy",\n'ff-Latn-SN': "dd/MM/yyyy",\n'ff-MR': "d/M/yyyy",\n'ff-NG': "d/M/yyyy",\n'fi': "d.M.yyyy",\n'fi-FI': "d.M.yyyy",\n'fil-PH': "M/d/yyyy",\n'fo': "dd.MM.yyyy",\n'fo-DK': "dd.MM.yyyy",\n'fo-FO': "dd.MM.yyyy",\n'fr': "dd/MM/yyyy",\n'fr-029': "dd/MM/yyyy",\n'fr-BE': "dd-MM-yy",\n'fr-BF': "dd/MM/yyyy",\n'fr-BI': "dd/MM/yyyy",\n'fr-BJ': "dd/MM/yyyy",\n'fr-BL': "dd/MM/yyyy",\n'fr-CA': "yyyy-MM-dd",\n'fr-CD': "dd/MM/yyyy",\n'fr-CF': "dd/MM/yyyy",\n'fr-CG': "dd/MM/yyyy",\n'fr-CH': "dd.MM.yyyy",\n'fr-CI': "dd/MM/yyyy",\n'fr-CM': "dd/MM/yyyy",\n'fr-DJ': "dd/MM/yyyy",\n'fr-DZ': "dd/MM/yyyy",\n'fr-FR': "dd/MM/yyyy",\n'fr-GA': "dd/MM/yyyy",\n'fr-GF': "dd/MM/yyyy",\n'fr-GN': "dd/MM/yyyy",\n'fr-GP': "dd/MM/yyyy",\n'fr-GQ': "dd/MM/yyyy",\n'fr-HT': "dd/MM/yyyy",\n'fr-KM': "dd/MM/yyyy",\n'fr-LU': "dd/MM/yyyy",\n'fr-MA': "dd/MM/yyyy",\n'fr-MC': "dd/MM/yyyy",\n'fr-MF': "dd/MM/yyyy",\n'fr-MG': "dd/MM/yyyy",\n'fr-ML': "dd/MM/yyyy",\n'fr-MQ': "dd/MM/yyyy",\n'fr-MR': "dd/MM/yyyy",\n'fr-MU': "dd/MM/yyyy",\n'fr-NC': "dd/MM/yyyy",\n'fr-NE': "dd/MM/yyyy",\n'fr-PF': "dd/MM/yyyy",\n'fr-PM': "dd/MM/yyyy",\n'fr-RE': "dd/MM/yyyy",\n'fr-RW': "dd/MM/yyyy",\n'fr-SC': "dd/MM/yyyy",\n'fr-SN': "dd/MM/yyyy",\n'fr-SY': "dd/MM/yyyy",\n'fr-TD': "dd/MM/yyyy",\n'fr-TG': "dd/MM/yyyy",\n'fr-TN': "dd/MM/yyyy",\n'fr-VU': "dd/MM/yyyy",\n'fr-WF': "dd/MM/yyyy",\n'fr-YT': "dd/MM/yyyy",\n'fur-IT': "dd/MM/yyyy",\n'fy-NL': "dd-MM-yyyy",\n'ga': "dd/MM/yyyy",\n'ga-IE': "dd/MM/yyyy",\n'gd': "dd/MM/yyyy",\n'gd-GB': "dd/MM/yyyy",\n'gl': "dd/MM/yyyy",\n'gl-ES': "dd/MM/yyyy",\n'gn': "dd/MM/yyyy",\n'gn-PY': "dd/MM/yyyy",\n'gsw-CH': "dd.MM.yyyy",\n'gsw-FR': "dd/MM/yyyy",\n'gsw-LI': "dd.MM.yyyy",\n'gu': "dd-MM-yy",\n'gu-IN': "dd-MM-yy",\n'guz-KE': "dd/MM/yyyy",\n'gv-IM': "dd/MM/yyyy",\n'ha-Latn-GH': "d/M/yyyy",\n'ha-Latn-NE': "d/M/yyyy",\n'ha-Latn-NG': "d/M/yyyy",\n'haw-US': "d/M/yyyy",\n'he-IL': "dd/MM/yyyy",\n'hi-IN': "dd-MM-yyyy",\n'hr': "d.M.yyyy.",\n'hr-BA': "d. M. yyyy.",\n'hr-HR': "d.M.yyyy.",\n'hsb-DE': "d.M.yyyy",\n'hu': "yyyy. MM. dd.",\n'hu-HU': "yyyy. MM. dd.",\n'hy-AM': "dd.MM.yyyy",\n'ia-001': "yyyy/MM/dd",\n'ia-FR': "yyyy/MM/dd",\n'ibb-NG': "d/M/yyyy",\n'id': "dd/MM/yyyy",\n'id-ID': "dd/MM/yyyy",\n'ig-NG': "dd/MM/yyyy",\n'ii-CN': "yyyy/M/d",\n'is': "d.M.yyyy",\n'is-IS': "d.M.yyyy",\n'it': "dd/MM/yyyy",\n'it-CH': "dd.MM.yyyy",\n'it-IT': "dd/MM/yyyy",\n'it-SM': "dd/MM/yyyy",\n'it-VA': "dd/MM/yyyy",\n'iu-Cans-CA': "d/M/yyyy",\n'iu-Latn-CA': "d/MM/yyyy",\n'ja-JP': "yyyy/MM/dd",\n'jgo-CM': "yyyy-MM-dd",\n'jmc-TZ': "dd/MM/yyyy",\n'jv-Java-ID': "dd/MM/yyyy",\n'jv-Latn-ID': "dd/MM/yyyy",\n'ka-GE': "dd.MM.yyyy",\n'kab-DZ': "d/M/yyyy",\n'kam-KE': "dd/MM/yyyy",\n'kde-TZ': "dd/MM/yyyy",\n'kea-CV': "d/M/yyyy",\n'khq-ML': "d/M/yyyy",\n'ki': "dd/MM/yyyy",\n'ki-KE': "dd/MM/yyyy",\n'kk-KZ': "dd.MM.yyyy",\n'kkj-CM': "dd/MM yyyy",\n'kl-GL': "dd-MM-yyyy",\n'kln-KE': "dd/MM/yyyy",\n'km': "dd/MM/yy",\n'km-KH': "dd/MM/yy",\n'kn': "dd-MM-yy",\n'kn-IN': "dd-MM-yy",\n'ko-KP': "yyyy. M. d.",\n'ko-KR': "yyyy-MM-dd",\n'kok-IN': "dd-MM-yyyy",\n'kr': "d/M/yyyy",\n'kr-NG': "d/M/yyyy",\n'ks-Arab-IN': "M/d/yyyy",\n'ks-Deva-IN': "dd-MM-yyyy",\n'ksb-TZ': "dd/MM/yyyy",\n'ksf-CM': "d/M/yyyy",\n'ksh-DE': "d. M. yyyy",\n'ku-Arab-IQ': "yyyy/MM/dd",\n'ku-Arab-IR': "dd/MM/yyyy",\n'kw': "dd/MM/yyyy",\n'kw-GB': "dd/MM/yyyy",\n'ky': "d-MMM yy",\n'ky-KG': "d-MMM yy",\n'la': "dd/MM/yyyy",\n'la-001': "dd/MM/yyyy",\n'lag-TZ': "dd/MM/yyyy",\n'lb': "dd.MM.yy",\n'lb-LU': "dd.MM.yy",\n'lg-UG': "dd/MM/yyyy",\n'lkt-US': "M/d/yyyy",\n'ln-AO': "d/M/yyyy",\n'ln-CD': "d/M/yyyy",\n'ln-CF': "d/M/yyyy",\n'ln-CG': "d/M/yyyy",\n'lo-LA': "d/M/yyyy",\n'lrc-IQ': "yyyy-MM-dd",\n'lrc-IR': "dd/MM/yyyy",\n'lt': "yyyy-MM-dd",\n'lt-LT': "yyyy-MM-dd",\n'lu': "d/M/yyyy",\n'lu-CD': "d/M/yyyy",\n'luo-KE': "dd/MM/yyyy",\n'luy-KE': "dd/MM/yyyy",\n'lv': "dd.MM.yyyy",\n'lv-LV': "dd.MM.yyyy",\n'mas-KE': "dd/MM/yyyy",\n'mas-TZ': "dd/MM/yyyy",\n'mer-KE': "dd/MM/yyyy",\n'mfe-MU': "d/M/yyyy",\n'mg': "yyyy-MM-dd",\n'mg-MG': "yyyy-MM-dd",\n'mgh-MZ': "dd/MM/yyyy",\n'mgo-CM': "yyyy-MM-dd",\n'mi-NZ': "dd/MM/yyyy",\n'mk': "dd.M.yyyy",\n'mk-MK': "dd.M.yyyy",\n'ml': "d/M/yyyy",\n'ml-IN': "d/M/yyyy",\n'mn': "yyyy.MM.dd",\n'mn-MN': "yyyy.MM.dd",\n'mn-Mong-CN': "yyyy/M/d",\n'mn-Mong-MN': "yyyy/M/d",\n'mni-IN': "dd/MM/yyyy",\n'moh-CA': "M/d/yyyy",\n'mr': "dd-MM-yyyy",\n'mr-IN': "dd-MM-yyyy",\n'ms': "d/MM/yyyy",\n'ms-BN': "d/MM/yyyy",\n'ms-MY': "d/MM/yyyy",\n'ms-SG': "d/MM/yyyy",\n'mt': "dd/MM/yyyy",\n'mt-MT': "dd/MM/yyyy",\n'mua-CM': "d/M/yyyy",\n'my': "dd-MM-yyyy",\n'my-MM': "dd-MM-yyyy",\n'mzn-IR': "dd/MM/yyyy",\n'naq-NA': "dd/MM/yyyy",\n'nb-NO': "dd.MM.yyyy",\n'nb-SJ': "dd.MM.yyyy",\n'nd-ZW': "dd/MM/yyyy",\n'nds-DE': "d.MM.yyyy",\n'nds-NL': "d.MM.yyyy",\n'ne': "M/d/yyyy",\n'ne-IN': "yyyy/M/d",\n'ne-NP': "M/d/yyyy",\n'nl': "d-M-yyyy",\n'nl-AW': "dd-MM-yyyy",\n'nl-BE': "d/MM/yyyy",\n'nl-BQ': "dd-MM-yyyy",\n'nl-CW': "dd-MM-yyyy",\n'nl-NL': "d-M-yyyy",\n'nl-SR': "dd-MM-yyyy",\n'nl-SX': "dd-MM-yyyy",\n'nmg-CM': "d/M/yyyy",\n'nn-NO': "dd.MM.yyyy",\n'nnh-CM': "dd/MM/yyyy",\n'no': "dd.MM.yyyy",\n'nqo-GN': "dd/MM/yyyy",\n'nr': "yyyy-MM-dd",\n'nr-ZA': "yyyy-MM-dd",\n'nso-ZA': "yyyy-MM-dd",\n'nus-SS': "d/MM/yyyy",\n'nyn-UG': "dd/MM/yyyy",\n'oc-FR': "dd/MM/yyyy",\n'om': "dd/MM/yyyy",\n'om-ET': "dd/MM/yyyy",\n'om-KE': "dd/MM/yyyy",\n'or-IN': "dd-MM-yy",\n'os-GE': "dd.MM.yyyy",\n'os-RU': "dd.MM.yyyy",\n'pa': "dd-MM-yy",\n'pa-Arab-PK': "dd-MM-yy",\n'pa-IN': "dd-MM-yy",\n'pap-029': "d-M-yyyy",\n'pl': "dd.MM.yyyy",\n'pl-PL': "dd.MM.yyyy",\n'prg-001': "dd.MM.yyyy",\n'prs-AF': "yyyy/M/d",\n'ps': "yyyy/M/d",\n'ps-AF': "yyyy/M/d",\n'pt': "dd/MM/yyyy",\n'pt-AO': "dd/MM/yyyy",\n'pt-BR': "dd/MM/yyyy",\n'pt-CH': "dd/MM/yyyy",\n'pt-CV': "dd/MM/yyyy",\n'pt-GQ': "dd/MM/yyyy",\n'pt-GW': "dd/MM/yyyy",\n'pt-LU': "dd/MM/yyyy",\n'pt-MO': "dd/MM/yyyy",\n'pt-MZ': "dd/MM/yyyy",\n'pt-PT': "dd/MM/yyyy",\n'pt-ST': "dd/MM/yyyy",\n'pt-TL': "dd/MM/yyyy",\n'quc-Latn-GT': "dd/MM/yyyy",\n'quz-BO': "dd/MM/yyyy",\n'quz-EC': "dd/MM/yyyy",\n'quz-PE': "dd/MM/yyyy",\n'rm-CH': "dd-MM-yyyy",\n'rn-BI': "d/M/yyyy",\n'ro': "dd.MM.yyyy",\n'ro-MD': "dd.MM.yyyy",\n'ro-RO': "dd.MM.yyyy",\n'rof-TZ': "dd/MM/yyyy",\n'ru': "dd.MM.yyyy",\n'ru-BY': "dd.MM.yyyy",\n'ru-KG': "dd.MM.yyyy",\n'ru-KZ': "dd.MM.yyyy",\n'ru-MD': "dd.MM.yyyy",\n'ru-RU': "dd.MM.yyyy",\n'ru-UA': "dd.MM.yyyy",\n'rw': "yyyy-MM-dd",\n'rw-RW': "yyyy-MM-dd",\n'rwk-TZ': "dd/MM/yyyy",\n'sa': "dd-MM-yyyy",\n'sa-IN': "dd-MM-yyyy",\n'sah-RU': "dd.MM.yyyy",\n'saq-KE': "dd/MM/yyyy",\n'sbp-TZ': "dd/MM/yyyy",\n'sd': "dd/MM/yyyy",\n'sd-Arab-PK': "dd/MM/yyyy",\n'sd-Deva-IN': "dd/MM/yyyy",\n'se': "yyyy-MM-dd",\n'se-FI': "d.M.yyyy",\n'se-NO': "yyyy-MM-dd",\n'se-SE': "yyyy-MM-dd",\n'seh-MZ': "d/M/yyyy",\n'ses-ML': "d/M/yyyy",\n'sg': "d/M/yyyy",\n'sg-CF': "d/M/yyyy",\n'shi-Latn-MA': "d/M/yyyy",\n'shi-Tfng-MA': "d/M/yyyy",\n'si': "yyyy-MM-dd",\n'si-LK': "yyyy-MM-dd",\n'sk': "d. M. yyyy",\n'sk-SK': "d. M. yyyy",\n'sl': "d. MM. yyyy",\n'sl-SI': "d. MM. yyyy",\n'sma-NO': "dd.MM.yyyy",\n'sma-SE': "yyyy-MM-dd",\n'smj-NO': "dd.MM.yyyy",\n'smj-SE': "yyyy-MM-dd",\n'smn-FI': "d.M.yyyy",\n'sms-FI': "d.M.yyyy",\n'sn': "yyyy-MM-dd",\n'sn-Latn-ZW': "yyyy-MM-dd",\n'so': "dd/MM/yyyy",\n'so-DJ': "dd/MM/yyyy",\n'so-ET': "dd/MM/yyyy",\n'so-KE': "dd/MM/yyyy",\n'so-SO': "dd/MM/yyyy",\n'sq-AL': "d.M.yyyy",\n'sq-MK': "d.M.yyyy",\n'sq-XK': "d.M.yyyy",\n'sr': "d.M.yyyy.",\n'sr-Cyrl-BA': "d.M.yyyy.",\n'sr-Cyrl-ME': "d.M.yyyy.",\n'sr-Cyrl-RS': "dd.MM.yyyy.",\n'sr-Cyrl-XK': "d.M.yyyy.",\n'sr-Latn-BA': "d.M.yyyy.",\n'sr-Latn-ME': "d.M.yyyy.",\n'sr-Latn-RS': "d.M.yyyy.",\n'sr-Latn-XK': "d.M.yyyy.",\n'ss': "yyyy-MM-dd",\n'ss-SZ': "yyyy-MM-dd",\n'ss-ZA': "yyyy-MM-dd",\n'ssy-ER': "dd/MM/yyyy",\n'st': "yyyy-MM-dd",\n'st-LS': "yyyy-MM-dd",\n'st-ZA': "yyyy-MM-dd",\n'sv': "yyyy-MM-dd",\n'sv-AX': "yyyy-MM-dd",\n'sv-FI': "dd-MM-yyyy",\n'sv-SE': "yyyy-MM-dd",\n'sw-CD': "dd/MM/yyyy",\n'sw-KE': "dd/MM/yyyy",\n'sw-TZ': "dd/MM/yyyy",\n'sw-UG': "dd/MM/yyyy",\n'syr-SY': "dd/MM/yyyy",\n'ta-IN': "dd-MM-yyyy",\n'ta-LK': "d/M/yyyy",\n'ta-MY': "d/M/yyyy",\n'ta-SG': "d/M/yyyy",\n'te-IN': "dd-MM-yy",\n'teo-KE': "dd/MM/yyyy",\n'teo-UG': "dd/MM/yyyy",\n'tg': "dd.MM.yyyy",\n'tg-Cyrl-TJ': "dd.MM.yyyy",\n'th': "d/M/yyyy",\n'th-TH': "d/M/yyyy",\n'ti-ER': "dd/MM/yyyy",\n'ti-ET': "dd/MM/yyyy",\n'tig-ER': "dd/MM/yyyy",\n'tk': "dd.MM.yy '\xc3\xbd.'",\n'tk-TM': "dd.MM.yy '\xc3\xbd.'",\n'tn': "yyyy-MM-dd",\n'tn-BW': "yyyy-MM-dd",\n'tn-ZA': "yyyy-MM-dd",\n'to': "d/M/yyyy",\n'to-TO': "d/M/yyyy",\n'tr': "d.MM.yyyy",\n'tr-CY': "d.MM.yyyy",\n'tr-TR': "d.MM.yyyy",\n'ts-ZA': "yyyy-MM-dd",\n'tt': "dd.MM.yyyy",\n'tt-RU': "dd.MM.yyyy",\n'twq-NE': "d/M/yyyy",\n'tzm-Arab-MA': "d/M/yyyy",\n'tzm-Latn-DZ': "dd-MM-yyyy",\n'tzm-Latn-MA': "dd/MM/yyyy",\n'tzm-Tfng-MA': "dd-MM-yyyy",\n'ug': "yyyy-M-d",\n'ug-CN': "yyyy-M-d",\n'uk-UA': "dd.MM.yyyy",\n'ur-IN': "d/M/yy",\n'ur-PK': "dd/MM/yyyy",\n'uz': "dd/MM/yyyy",\n'uz-Arab-AF': "dd/MM yyyy",\n'uz-Cyrl-UZ': "dd/MM/yyyy",\n'uz-Latn-UZ': "dd/MM/yyyy",\n'vai-Latn-LR': "dd/MM/yyyy",\n'vai-Vaii-LR': "dd/MM/yyyy",\n've': "yyyy-MM-dd",\n've-ZA': "yyyy-MM-dd",\n'vi': "dd/MM/yyyy",\n'vi-VN': "dd/MM/yyyy",\n'vo-001': "yyyy-MM-dd",\n'vun-TZ': "dd/MM/yyyy",\n'wae-CH': "yyyy-MM-dd",\n'wal-ET': "dd/MM/yyyy",\n'wo-SN': "dd/MM/yyyy",\n'xh-ZA': "yyyy-MM-dd",\n'xog-UG': "dd/MM/yyyy",\n'yav-CM': "d/M/yyyy",\n'yi-001': "dd/MM/yyyy",\n'yo-BJ': "dd/MM/yyyy",\n'yo-NG': "dd/MM/yyyy",\n'zgh-Tfng-MA': "d/M/yyyy",\n'zh-CN': "yyyy/M/d",\n'zh-Hans-HK': "d/M/yyyy",\n'zh-Hans-MO': "d/M/yyyy",\n'zh-HK': "d/M/yyyy",\n'zh-MO': "d/M/yyyy",\n'zh-SG': "d/M/yyyy",\n'zh-TW': "yyyy/M/d",\n'zu-ZA': "M/d/yyyy",\n};\n
Run Code Online (Sandbox Code Playgroud)\n


ieg*_*gik 6

如果你有关于<input type="date">字段的问题,这里是获取字段的脚本value=""属性:

(new Date()).toISOString().split('T')[0]
Run Code Online (Sandbox Code Playgroud)

您可以使用Intl对象(ecma-402)来获取data-date-pattern="":

(new Intl.DateTimeFormat()).resolved.pattern // "M/d/y" for "en-US" in Google Chrome
Run Code Online (Sandbox Code Playgroud)

最后,要格式化当前l10n中的日期,data-date="":

(new Intl.DateTimeFormat()).format(new Date());
Run Code Online (Sandbox Code Playgroud)

Polyfill:https://github.com/andyearnshaw/Intl.js/issues/129

  • `(new Intl.DateTimeFormat()).resolved.pattern` 在 Google Chrome 中生成错误。`(new Intl.DateTimeFormat()).resolved` 是 `undefined`。这不是获取格式字符串的解决方案,但您可以使用`((new Intl.DateTimeFormat()).format(new Date());` 来获取格式化的日期字符串。 (2认同)

zlo*_*ctb 6

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat

Intl.DateTimeFormat对象是对象的构造函数,用于启用语言敏感的日期和时间格式.

var date = new Date(2014, 11, 31, 12, 30, 0);

var formatter = new Intl.DateTimeFormat("ru");
console.log( formatter.format(date) ); // 31.12.2014

var formatter = new Intl.DateTimeFormat("en-US");

console.log(formatter.format(date)); // 12/31/2014
Run Code Online (Sandbox Code Playgroud)

您当前区域的格式:

console.log(new Intl.DateTimeFormat(Intl.DateTimeFormat().resolvedOptions().locale).
format(new Date()))
Run Code Online (Sandbox Code Playgroud)


Ami*_*obo 5

我不知道如何做到这一点(你可以获得语言并尝试从中扣除语言环境).

我尝试做一些尝试做的事情(仅在具有一个语言环境的Firefox上测试).只要短日期字符串包含日期作为数字,就应该工作,所以它可能会失败,比如阿拉伯语.它可能还有其他错误,我不知道所有不同的locales特性,这只是一个概念......

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();
Run Code Online (Sandbox Code Playgroud)

输出的格式为:

  • Y:表示年份的位数
  • dD =短日(即尽可能只使用一位数)
  • DD =长日格式(即总是两位数)
  • mM/MM - 几个月相同

所以在我的浏览器中,你得到的shortDateformat是"MM/DD/YYYY".


小智 5

function getDatePattern(locale) {
  // expected style = year: 2010, month: 12, day: 31
  var options = { year: "numeric", month: "2-digit", day: "2-digit" };

  // formatToParts() returns array of object breaking down the locales dateformat
  // [ 
  //  {type: "month", value: "03"},
  //  {type: "literal", value: "/"},
  //  {type: "day", value: "30"},
  //  {type: "literal", value: "/"},
  //  {type: "year", value: "2021"},
  // ]
  var formatter = new Intl.DateTimeFormat(locale, options).formatToParts();

  return formatter.map(function(e) {
      switch(e.type) {
        case 'month':
          return 'MM'; break;
        case 'day':
          return 'DD'; break;
        case 'year':
          return 'YYYY'; break;
        default: 
          return e.value;
      };
    }).join('');
}

// "YYYY/MM/DD"
console.log(getDatePattern('en'));
// "YYYY. MM. DD."
console.log(getDatePattern('ko'));
Run Code Online (Sandbox Code Playgroud)