Можем ли мы каким-либо образом узнать с помощью JavaScript формат краткой даты, используемый в панели управления -> Региональные и языковые настройки?
Я знаю, что с помощью следующей комбинации мы можем получить формат длинного имени локали
toString()
toLocaleString()
toLocaleDateString()
toLocaleTimeString()
Но в JavaScript нет прямой функции вроде toLocaleShortDateString()
.
Существуют ли какие-либо сценарии для определения пользовательских настроек?
Спасибо.
javascript
datetime
лелол
источник
источник
Ответы:
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'; }
источник
(new Intl.DateTimeFormat()).resolved.pattern
похоже, не существует. Я получаюUncaught TypeError: Cannot read property 'pattern' of undefined
и видел какой-то хромовый баг по поводу его удаления..resolvedOptions()
работает, но исключает узор.Я думаю, это лучший способ сделать это ...
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.. );
Дополнительные параметры и их примеры ....
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
источник
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; }
с помощью:
shortedDate=getLocaleShortDateString(new Date(1992, 0, 7));
Показать фрагмент кода
shortedDate = getLocaleShortDateString(new Date(1992, 0, 7)); console.log(shortedDate); 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; }
источник
Не может быть сделано.
Кроссбраузерный JavaScript не имеет возможности использовать фактический формат краткой даты, выбранный пользователем на платформах, которые предлагают такую региональную настройку. Кроме того, в JavaScript есть огромные дыры в том, что касается любого форматирования. Посмотрите, как много хлопот с заполнением нулями!
Вы можете пойти на многое, чтобы получить языковые настройки и типичный формат для этой локали. Это большая работа, когда вы даже не знаете, правильный ли это локаль (готов поспорить, что заголовки на международном языке часто неверны или недостаточно конкретны), или если пользователь настроил формат для чего-то другого.
Вы можете попробовать использовать клиентский VBScript (который имеет функции для всех этих перестановок регионального форматирования), но это не очень хорошая идея, потому что это умирающая (мертвая?) Технология, специфичная для IE.
Вы также можете попробовать использовать Java / Flash / Silverlight, чтобы откопать формат. Это тоже огромная дополнительная работа, но она может иметь наилучшие шансы на успех. Вы хотите кэшировать его для сеанса, чтобы минимизировать накладные расходы.
Надеюсь, элемент HTML5 <time> немного облегчит отображение даты и времени i18n.
источник
Если у вас вопрос о
<input type="date">
поле, вот скрипт для полученияvalue=""
атрибута поля :(new Date()).toISOString().split('T')[0]
Вы можете использовать объект Intl ( ecma-402 ), чтобы получить
data-date-pattern=""
:(new Intl.DateTimeFormat()).resolved.pattern // "M/d/y" for "en-US" in Google Chrome
И, наконец, для форматирования даты в текущем l10n
data-date=""
:(new Intl.DateTimeFormat()).format(new Date());
Полифилл: 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());
для получения форматированной строки даты.(new Intl.DateTimeFormat()).resolvedOptions()
- предоставит вам объект форматированияresolvedOptions
производит только грубые данные (по крайней мере, в Chrome 80), например. информация о длине представления года, порядке компонентов даты, разделителе компонентов даты - все отсутствует.https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/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
формат вашей текущей зоны:
console.log(new Intl.DateTimeFormat(Intl.DateTimeFormat().resolvedOptions().locale). format(new Date()))
источник
Я не знаю, как это сделать (вы можете получить язык и попытаться вычесть из него языковой стандарт).
Я попытался приготовить что-нибудь, чтобы попробовать (проверено только в 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();
Выходной формат будет:
Итак, в моем браузере вы получаете shortDateformat "MM / DD / YYYY".
источник
Это зависит от реализации браузера
toLocaleDateString()
. Например, в хроме вы получите что-то вроде:Tuesday, January DD, YYYY
источник
Незначительное изменение ответа Митали. Чтобы динамически генерировать язык для более локализованного решения.
var lang= window.navigator.userLanguage || window.navigator.language; var date = new Date(); var options = { weekday: "short", year: "numeric", month: "2-digit", day: "numeric" }; date.toLocaleDateString(lang, options);
источник
Я считаю, что вы можете использовать это:
new Date().toLocaleDateString();
Который может принимать параметры для локали:
new Date().toLocaleDateString("en-us"); new Date().toLocaleDateString("he-il");
Я вижу, что он поддерживается chrome, IE, edge, хотя результаты могут отличаться, для меня он неплохо справляется.
источник
new Date(YOUR_DATE_STRING).toLocaleDateString(navigator.language)
~ комбинация ответов выше
источник
Нет простого пути. Если вам нужно надежное кроссбраузерное решение, вам придется создать справочную таблицу даты и строк формата времени в зависимости от культуры. Чтобы отформатировать дату, проанализируйте соответствующую строку формата, извлеките соответствующие части из даты, то есть день, месяц, год, и сложите их вместе.
По сути, это то, что Microsoft делает со своей библиотекой AJAX, как показано в ответе @ no.
источник
Нашел эту ветку, когда искал способ генерировать локализованные, но короткие даты во всех браузерах без какой-либо дополнительной библиотеки, просто простой вызов для форматирования сгенерированных сервером дат ISO.
Я пошел с комбинацией ответов holden321 и mwrf. Сохранение форматов, внешних по отношению к функции, потому что так удобнее, и сохранение текущего формата локали, потому что он всегда полезен.
В функцию можно передать все, что можно передать конструктору даты, чтобы получить действительную дату, а также язык или формат для гибкости.
Сначала вам нужно настроить список форматов и еще пару вещей:
var LOCALE_DATE_FORMATS = { // as per mwrf's list ... } var LANG = window.navigator.userLanguage || window.navigator.language; var LOCALE_DATE_FORMAT = LOCALE_DATE_FORMATS[LANG] || 'dd/MM/yyyy';
Тогда функция такая:
function getLocalizedDate(o, options) { var res = ''; var date = new Date(o); if(o != null && !isNaN(date) && typeof(date.getFullYear) == 'function') { var d = date.getDate(); var dd = d < 10 ? '0' + d : d; var M = date.getMonth() + 1; var MM = M < 10 ? '0' + M : M; var yyyy = date.getFullYear(); var yy = new String(yyyy).substring(2); var format = LOCALE_DATE_FORMAT; if(options && options.lang) format = LOCALE_DATE_FORMATS[options.lang]; else if(options && options.format) format = options.format; res = format .replace(/dd/g, dd) .replace(/d/g, d) .replace(/MM/g, MM) .replace(/M/g, M) .replace(/yyyy/g, yyyy) .replace(/yy/g, yy); } return res; }
getLocalizedDate('2013-03-01T00:00:00', {lang:'sk-SK'})
знак равно1. 3. 2013
РЕДАКТИРОВАТЬ: вызов без аргументов, чтобы использовать локаль пользователя, конечно:
getLocalizedDate('2013-03-01T00:00:00')
=01/03/2013
(для меня)Если вы поклонник расширения прототипов, первые строки определения функции будут такими:
Date.prototype.getLocalized = function(options) { var date = this;
Вызывается, конечно, так:
new Date('2013-03-01T00:00:00').getLocalized({lang:'sk-SK'})
знак равно1. 3. 2013
РЕДАКТИРОВАТЬ: снова вызовите без аргументов, чтобы использовать локаль пользователя:
new Date('2013-03-01T00:00:00').getLocalized()
=01/03/2013
(для меня)источник
Попробуй это:
new Date().toLocaleFormat("%x");
Все форматы для этой функции можно найти здесь: http://pubs.opengroup.org/onlinepubs/007908799/xsh/strftime.html
источник
Попробуйте использовать Date.CultureInfo.formatPatterns.shortDate
источник