admin管理员组文章数量:1129496
Is there anyway we can know using JavaScript the Short Date Format used in the Control Panel -> Regional and Language Settings?
I know the using the combination of following we can get the Locale Long Name format
toString()
toLocaleString()
toLocaleDateString()
toLocaleTimeString()
But there is no direct function in JavaScript like toLocaleShortDateString()
.
Are there any scripts available to find out what the user setting is?
Thanks.
Is there anyway we can know using JavaScript the Short Date Format used in the Control Panel -> Regional and Language Settings?
I know the using the combination of following we can get the Locale Long Name format
toString()
toLocaleString()
toLocaleDateString()
toLocaleTimeString()
But there is no direct function in JavaScript like toLocaleShortDateString()
.
Are there any scripts available to find out what the user setting is?
Thanks.
Share Improve this question edited Jun 25, 2010 at 1:27 Marcel Korpel 21.8k6 gold badges61 silver badges80 bronze badges asked Mar 5, 2010 at 16:09 lelollelol 1,7112 gold badges11 silver badges3 bronze badges 2- Just to make sure i understand: you mean hot to get the format itself? becuase the "missing function" name you give is misleading (toLocaleShortDateString), maybe something like "getLocaleShortDateFormat"? – Amitay Dobo Commented Mar 5, 2010 at 21:38
- I found the answers to this related question more helpful for my purposes since I just want to provide a half-decent default for which the clientside-only solutions presented there are useful. – Kirk Woll Commented Sep 25, 2014 at 4:54
27 Answers
Reset to default 347
function getLocaleDateString() {
const formats = {
"af-ZA": "yyyy/MM/dd",
"am-ET": "d/M/yyyy",
"ar-AE": "dd/MM/yyyy",
"ar-BH": "dd/MM/yyyy",
"ar-DZ": "dd-MM-yyyy",
"ar-EG": "dd/MM/yyyy",
"ar-IQ": "dd/MM/yyyy",
"ar-JO": "dd/MM/yyyy",
"ar-KW": "dd/MM/yyyy",
"ar-LB": "dd/MM/yyyy",
"ar-LY": "dd/MM/yyyy",
"ar-MA": "dd-MM-yyyy",
"ar-OM": "dd/MM/yyyy",
"ar-QA": "dd/MM/yyyy",
"ar-SA": "dd/MM/yy",
"ar-SY": "dd/MM/yyyy",
"ar-TN": "dd-MM-yyyy",
"ar-YE": "dd/MM/yyyy",
"arn-CL": "dd-MM-yyyy",
"as-IN": "dd-MM-yyyy",
"az-Cyrl-AZ": "dd.MM.yyyy",
"az-Latn-AZ": "dd.MM.yyyy",
"ba-RU": "dd.MM.yy",
"be-BY": "dd.MM.yyyy",
"bg-BG": "dd.M.yyyy",
"bn-BD": "dd-MM-yy",
"bn-IN": "dd-MM-yy",
"bo-CN": "yyyy/M/d",
"br-FR": "dd/MM/yyyy",
"bs-Cyrl-BA": "d.M.yyyy",
"bs-Latn-BA": "d.M.yyyy",
"ca-ES": "dd/MM/yyyy",
"co-FR": "dd/MM/yyyy",
"cs-CZ": "d.M.yyyy",
"cy-GB": "dd/MM/yyyy",
"da-DK": "dd-MM-yyyy",
"de-AT": "dd.MM.yyyy",
"de-CH": "dd.MM.yyyy",
"de-DE": "dd.MM.yyyy",
"de-LI": "dd.MM.yyyy",
"de-LU": "dd.MM.yyyy",
"dsb-DE": "d. M. yyyy",
"dv-MV": "dd/MM/yy",
"el-GR": "d/M/yyyy",
"en-029": "MM/dd/yyyy",
"en-AU": "d/MM/yyyy",
"en-BZ": "dd/MM/yyyy",
"en-CA": "dd/MM/yyyy",
"en-GB": "dd/MM/yyyy",
"en-IE": "dd/MM/yyyy",
"en-IN": "dd-MM-yyyy",
"en-JM": "dd/MM/yyyy",
"en-MY": "d/M/yyyy",
"en-NZ": "d/MM/yyyy",
"en-PH": "M/d/yyyy",
"en-SG": "d/M/yyyy",
"en-TT": "dd/MM/yyyy",
"en-US": "M/d/yyyy",
"en-ZA": "yyyy/MM/dd",
"en-ZW": "M/d/yyyy",
"es-AR": "dd/MM/yyyy",
"es-BO": "dd/MM/yyyy",
"es-CL": "dd-MM-yyyy",
"es-CO": "dd/MM/yyyy",
"es-CR": "dd/MM/yyyy",
"es-DO": "dd/MM/yyyy",
"es-EC": "dd/MM/yyyy",
"es-ES": "dd/MM/yyyy",
"es-GT": "dd/MM/yyyy",
"es-HN": "dd/MM/yyyy",
"es-MX": "dd/MM/yyyy",
"es-NI": "dd/MM/yyyy",
"es-PA": "MM/dd/yyyy",
"es-PE": "dd/MM/yyyy",
"es-PR": "dd/MM/yyyy",
"es-PY": "dd/MM/yyyy",
"es-SV": "dd/MM/yyyy",
"es-US": "M/d/yyyy",
"es-UY": "dd/MM/yyyy",
"es-VE": "dd/MM/yyyy",
"et-EE": "d.MM.yyyy",
"eu-ES": "yyyy/MM/dd",
"fa-IR": "MM/dd/yyyy",
"fi-FI": "d.M.yyyy",
"fil-PH": "M/d/yyyy",
"fo-FO": "dd-MM-yyyy",
"fr-BE": "d/MM/yyyy",
"fr-CA": "yyyy-MM-dd",
"fr-CH": "dd.MM.yyyy",
"fr-FR": "dd/MM/yyyy",
"fr-LU": "dd/MM/yyyy",
"fr-MC": "dd/MM/yyyy",
"fy-NL": "d-M-yyyy",
"ga-IE": "dd/MM/yyyy",
"gd-GB": "dd/MM/yyyy",
"gl-ES": "dd/MM/yy",
"gsw-FR": "dd/MM/yyyy",
"gu-IN": "dd-MM-yy",
"ha-Latn-NG": "d/M/yyyy",
"he-IL": "dd/MM/yyyy",
"hi-IN": "dd-MM-yyyy",
"hr-BA": "d.M.yyyy.",
"hr-HR": "d.M.yyyy",
"hsb-DE": "d. M. yyyy",
"hu-HU": "yyyy. MM. dd.",
"hy-AM": "dd.MM.yyyy",
"id-ID": "dd/MM/yyyy",
"ig-NG": "d/M/yyyy",
"ii-CN": "yyyy/M/d",
"is-IS": "d.M.yyyy",
"it-CH": "dd.MM.yyyy",
"it-IT": "dd/MM/yyyy",
"iu-Cans-CA": "d/M/yyyy",
"iu-Latn-CA": "d/MM/yyyy",
"ja-JP": "yyyy/MM/dd",
"ka-GE": "dd.MM.yyyy",
"kk-KZ": "dd.MM.yyyy",
"kl-GL": "dd-MM-yyyy",
"km-KH": "yyyy-MM-dd",
"kn-IN": "dd-MM-yy",
"ko-KR": "yyyy. MM. dd",
"kok-IN": "dd-MM-yyyy",
"ky-KG": "dd.MM.yy",
"lb-LU": "dd/MM/yyyy",
"lo-LA": "dd/MM/yyyy",
"lt-LT": "yyyy.MM.dd",
"lv-LV": "yyyy.MM.dd.",
"mi-NZ": "dd/MM/yyyy",
"mk-MK": "dd.MM.yyyy",
"ml-IN": "dd-MM-yy",
"mn-MN": "yy.MM.dd",
"mn-Mong-CN": "yyyy/M/d",
"moh-CA": "M/d/yyyy",
"mr-IN": "dd-MM-yyyy",
"ms-BN": "dd/MM/yyyy",
"ms-MY": "dd/MM/yyyy",
"mt-MT": "dd/MM/yyyy",
"nb-NO": "dd.MM.yyyy",
"ne-NP": "M/d/yyyy",
"nl-BE": "d/MM/yyyy",
"nl-NL": "d-M-yyyy",
"nn-NO": "dd.MM.yyyy",
"nso-ZA": "yyyy/MM/dd",
"oc-FR": "dd/MM/yyyy",
"or-IN": "dd-MM-yy",
"pa-IN": "dd-MM-yy",
"pl-PL": "dd.MM.yyyy",
"prs-AF": "dd/MM/yy",
"ps-AF": "dd/MM/yy",
"pt-BR": "d/M/yyyy",
"pt-PT": "dd-MM-yyyy",
"qut-GT": "dd/MM/yyyy",
"quz-BO": "dd/MM/yyyy",
"quz-EC": "dd/MM/yyyy",
"quz-PE": "dd/MM/yyyy",
"rm-CH": "dd/MM/yyyy",
"ro-RO": "dd.MM.yyyy",
"ru-RU": "dd.MM.yyyy",
"rw-RW": "M/d/yyyy",
"sa-IN": "dd-MM-yyyy",
"sah-RU": "MM.dd.yyyy",
"se-FI": "d.M.yyyy",
"se-NO": "dd.MM.yyyy",
"se-SE": "yyyy-MM-dd",
"si-LK": "yyyy-MM-dd",
"sk-SK": "d. M. yyyy",
"sl-SI": "d.M.yyyy",
"sma-NO": "dd.MM.yyyy",
"sma-SE": "yyyy-MM-dd",
"smj-NO": "dd.MM.yyyy",
"smj-SE": "yyyy-MM-dd",
"smn-FI": "d.M.yyyy",
"sms-FI": "d.M.yyyy",
"sq-AL": "yyyy-MM-dd",
"sr-Cyrl-BA": "d.M.yyyy",
"sr-Cyrl-CS": "d.M.yyyy",
"sr-Cyrl-ME": "d.M.yyyy",
"sr-Cyrl-RS": "d.M.yyyy",
"sr-Latn-BA": "d.M.yyyy",
"sr-Latn-CS": "d.M.yyyy",
"sr-Latn-ME": "d.M.yyyy",
"sr-Latn-RS": "d.M.yyyy",
"sv-FI": "d.M.yyyy",
"sv-SE": "yyyy-MM-dd",
"sw-KE": "M/d/yyyy",
"syr-SY": "dd/MM/yyyy",
"ta-IN": "dd-MM-yyyy",
"te-IN": "dd-MM-yy",
"tg-Cyrl-TJ": "dd.MM.yy",
"th-TH": "d/M/yyyy",
"tk-TM": "dd.MM.yy",
"tn-ZA": "yyyy/MM/dd",
"tr-TR": "dd.MM.yyyy",
"tt-RU": "dd.MM.yyyy",
"tzm-Latn-DZ": "dd-MM-yyyy",
"ug-CN": "yyyy-M-d",
"uk-UA": "dd.MM.yyyy",
"ur-PK": "dd/MM/yyyy",
"uz-Cyrl-UZ": "dd.MM.yyyy",
"uz-Latn-UZ": "dd/MM yyyy",
"vi-VN": "dd/MM/yyyy",
"wo-SN": "dd/MM/yyyy",
"xh-ZA": "yyyy/MM/dd",
"yo-NG": "d/M/yyyy",
"zh-CN": "yyyy/M/d",
"zh-HK": "d/M/yyyy",
"zh-MO": "d/M/yyyy",
"zh-SG": "d/M/yyyy",
"zh-TW": "yyyy/M/d",
"zu-ZA": "yyyy/MM/dd",
};
return formats[navigator.language] || "dd/MM/yyyy";
}
console.log(navigator.language,getLocaleDateString());
I think this is the best way to do it...
var date = new Date();
var options = {
weekday: "short",
year: "numeric",
month: "2-digit",
day: "numeric",
hour: 'numeric',
minute: 'numeric',
second: 'numeric',
timeZoneName: 'short'
};
console.log(
date.toLocaleDateString("en", options) //en is language option, you may specify..
);
More Options and their examples....
Option Values 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'
I stumbled on this thread while trying to work out how to display a placeholder for a date picker field. Ultimately, I want to see a user-friendly format string based on the browser's locale (e.g. for 'en-AU'
I want to display 'dd/mm/yyyy'
).
It looks like over the years, there's been various ways to achieve bits and pieces of this. new Intl.DateTimeFormat("en-AU")).resolved.pattern
looks like it used to be fairly well supported, but this has now been removed in favour of formatToParts
.
Using formatToParts
to dice up a date into its constituent parts lets us extrapolate the pattern string - here's a basic function that I wrote to do exactly that:
/**
* 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('');
};
MDN:
The Intl.DateTimeFormat object is a constructor for objects that enable language sensitive date and time formatting.
Example:
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
The below StackSnippet will log the current date in your local format.
console.log(new Intl.DateTimeFormat(Intl.DateTimeFormat().resolvedOptions().locale).format(new Date()))
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'));
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;
}
using:
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;
}
If your question about <input type="date">
field, here is script for getting filed value=""
attribute:
(new Date()).toISOString().split('T')[0]
You can use the Intl object (ecma-402) to get data-date-pattern=""
:
(new Intl.DateTimeFormat()).resolved.pattern // "M/d/y" for "en-US" in Google Chrome
And finnaly, to format date in current l10n, data-date=""
:
(new Intl.DateTimeFormat()).format(new Date());
Polyfill: https://github.com/andyearnshaw/Intl.js/issues/129
Can't be done.
Cross-browser JavaScript has no way to use the actual short date format selected by the user on platforms that offer such regional customization. Besides, JavaScript has huge holes where any sort of formatting is concerned. Look how much hassle zero-padding is!
You can go to great lengths to obtain the language setting, and get the typical format for that locale. That's a lot of work when you don't even know if it's the correct locale (I'd bet that international language headers are often incorrect or not specific enough), or if the user has customized the format to something else.
You can try using client VBScript (which has functions for all of these regional formatting permutations), but that's not a good idea because it's a dying (dead?) IE-specific technology.
You can also try using Java/Flash/Silverlight to dig up the format. This is also a great deal of extra work, but may have the best chance for success. You'd want to cache it for the session to minimize the overhead.
Hopefully the HTML5 <time> element will provide some relief for i18n date/time display.
Short date patterns:
const shortDatePatterns = {
'aa-DJ': "dd/MM/yyyy",
'aa-ER': "dd/MM/yyyy",
'aa-ET': "dd/MM/yyyy",
'af': "yyyy-MM-dd",
'af-NA': "yyyy-MM-dd",
'af-ZA': "yyyy-MM-dd",
'agq-CM': "d/M/yyyy",
'ak-GH': "yyyy/MM/dd",
'am': "dd/MM/yyyy",
'am-ET': "dd/MM/yyyy",
'ar': "dd/MM/yy",
'ar-001': "d/M/yyyy",
'ar-AE': "dd/MM/yyyy",
'ar-BH': "dd/MM/yyyy",
'ar-DJ': "d/M/yyyy",
'ar-DZ': "dd-MM-yyyy",
'ar-EG': "dd/MM/yyyy",
'ar-ER': "d/M/yyyy",
'ar-IL': "d/M/yyyy",
'ar-IQ': "dd/MM/yyyy",
'ar-JO': "dd/MM/yyyy",
'ar-KM': "d/M/yyyy",
'ar-KW': "dd/MM/yyyy",
'ar-LB': "dd/MM/yyyy",
'ar-LY': "dd/MM/yyyy",
'ar-MA': "dd-MM-yyyy",
'ar-MR': "d/M/yyyy",
'ar-OM': "dd/MM/yyyy",
'ar-PS': "d/M/yyyy",
'ar-QA': "dd/MM/yyyy",
'ar-SA': "dd/MM/yy",
'ar-SD': "d/M/yyyy",
'ar-SO': "d/M/yyyy",
'ar-SS': "d/M/yyyy",
'ar-SY': "dd/MM/yyyy",
'ar-TD': "d/M/yyyy",
'ar-TN': "dd-MM-yyyy",
'ar-YE': "dd/MM/yyyy",
'arn-CL': "dd-MM-yyyy",
'as': "dd-MM-yyyy",
'as-IN': "dd-MM-yyyy",
'asa-TZ': "dd/MM/yyyy",
'ast-ES': "d/M/yyyy",
'az': "dd.MM.yyyy",
'az-Cyrl-AZ': "dd.MM.yyyy",
'az-Latn-AZ': "dd.MM.yyyy",
'ba': "dd.MM.yy",
'ba-RU': "dd.MM.yy",
'bas-CM': "d/M/yyyy",
'be': "dd.MM.yy",
'be-BY': "dd.MM.yy",
'bem-ZM': "dd/MM/yyyy",
'bez-TZ': "dd/MM/yyyy",
'bg': "d.M.yyyy 'г.'",
'bg-BG': "d.M.yyyy 'г.'",
'bin-NG': "d/M/yyyy",
'bm': "d/M/yyyy",
'bm-Latn-ML': "d/M/yyyy",
'bn': "d/M/yyyy",
'bn-BD': "d/M/yyyy",
'bn-IN': "dd-MM-yy",
'bo': "yyyy/M/d",
'bo-CN': "yyyy/M/d",
'bo-IN': "yyyy-MM-dd",
'br': "dd/MM/yyyy",
'br-FR': "dd/MM/yyyy",
'brx-IN': "M/d/yyyy",
'bs': "d.M.yyyy.",
'bs-Cyrl-BA': "d.M.yyyy",
'bs-Latn-BA': "d.M.yyyy.",
'byn-ER': "dd/MM/yyyy",
'ca': "d/M/yyyy",
'ca-AD': "d/M/yyyy",
'ca-ES': "d/M/yyyy",
'ca-ES-valencia': "d/M/yyyy",
'ca-FR': "d/M/yyyy",
'ca-IT': "d/M/yyyy",
'ce-RU': "yyyy-MM-dd",
'cgg-UG': "dd/MM/yyyy",
'chr-Cher-US': "M/d/yyyy",
'co': "dd/MM/yyyy",
'co-FR': "dd/MM/yyyy",
'cs-CZ': "dd.MM.yyyy",
'cu': "yyyy.MM.dd",
'cu-RU': "yyyy.MM.dd",
'cy': "dd/MM/yyyy",
'cy-GB': "dd/MM/yyyy",
'da-DK': "dd-MM-yyyy",
'da-GL': "dd/MM/yyyy",
'dav-KE': "dd/MM/yyyy",
'de': "dd.MM.yyyy",
'de-AT': "dd.MM.yyyy",
'de-BE': "dd.MM.yyyy",
'de-CH': "dd.MM.yyyy",
'de-DE': "dd.MM.yyyy",
'de-IT': "dd.MM.yyyy",
'de-LI': "dd.MM.yyyy",
'de-LU': "dd.MM.yyyy",
'dje-NE': "d/M/yyyy",
'dsb-DE': "d. M. yyyy",
'dua-CM': "d/M/yyyy",
'dv-MV': "dd/MM/yy",
'dyo-SN': "d/M/yyyy",
'dz': "yyyy-MM-dd",
'dz-BT': "yyyy-MM-dd",
'ebu-KE': "dd/MM/yyyy",
'ee': "M/d/yyyy",
'ee-GH': "M/d/yyyy",
'ee-TG': "M/d/yyyy",
'el-CY': "d/M/yyyy",
'el-GR': "d/M/yyyy",
'en-001': "dd/MM/yyyy",
'en-029': "dd/MM/yyyy",
'en-150': "dd/MM/yyyy",
'en-AG': "dd/MM/yyyy",
'en-AI': "dd/MM/yyyy",
'en-AS': "M/d/yyyy",
'en-AT': "dd/MM/yyyy",
'en-AU': "d/MM/yyyy",
'en-BB': "dd/MM/yyyy",
'en-BE': "dd/MM/yyyy",
'en-BI': "M/d/yyyy",
'en-BM': "dd/MM/yyyy",
'en-BS': "dd/MM/yyyy",
'en-BW': "dd/MM/yyyy",
'en-BZ': "dd/MM/yyyy",
'en-CA': "yyyy-MM-dd",
'en-CC': "dd/MM/yyyy",
'en-CH': "dd/MM/yyyy",
'en-CK': "dd/MM/yyyy",
'en-CM': "dd/MM/yyyy",
'en-CX': "dd/MM/yyyy",
'en-CY': "dd/MM/yyyy",
'en-DE': "dd/MM/yyyy",
'en-DK': "dd/MM/yyyy",
'en-DM': "dd/MM/yyyy",
'en-ER': "dd/MM/yyyy",
'en-FI': "dd/MM/yyyy",
'en-FJ': "dd/MM/yyyy",
'en-FK': "dd/MM/yyyy",
'en-FM': "dd/MM/yyyy",
'en-GB': "dd/MM/yyyy",
'en-GD': "dd/MM/yyyy",
'en-GG': "dd/MM/yyyy",
'en-GH': "dd/MM/yyyy",
'en-GI': "dd/MM/yyyy",
'en-GM': "dd/MM/yyyy",
'en-GU': "M/d/yyyy",
'en-GY': "dd/MM/yyyy",
'en-HK': "d/M/yyyy",
'en-ID': "dd/MM/yyyy",
'en-IE': "dd/MM/yyyy",
'en-IL': "dd/MM/yyyy",
'en-IM': "dd/MM/yyyy",
'en-IN': "dd-MM-yyyy",
'en-IO': "dd/MM/yyyy",
'en-JE': "dd/MM/yyyy",
'en-JM': "d/M/yyyy",
'en-KE': "dd/MM/yyyy",
'en-KI': "dd/MM/yyyy",
'en-KN': "dd/MM/yyyy",
'en-KY': "dd/MM/yyyy",
'en-LC': "dd/MM/yyyy",
'en-LR': "dd/MM/yyyy",
'en-LS': "dd/MM/yyyy",
'en-MG': "dd/MM/yyyy",
'en-MH': "M/d/yyyy",
'en-MO': "dd/MM/yyyy",
'en-MP': "M/d/yyyy",
'en-MS': "dd/MM/yyyy",
'en-MT': "dd/MM/yyyy",
'en-MU': "dd/MM/yyyy",
'en-MW': "dd/MM/yyyy",
'en-MY': "d/M/yyyy",
'en-NA': "dd/MM/yyyy",
'en-NF': "dd/MM/yyyy",
'en-NG': "dd/MM/yyyy",
'en-NL': "dd/MM/yyyy",
'en-NR': "dd/MM/yyyy",
'en-NU': "dd/MM/yyyy",
'en-NZ': "d/MM/yyyy",
'en-PG': "dd/MM/yyyy",
'en-PH': "dd/MM/yyyy",
'en-PK': "dd/MM/yyyy",
'en-PN': "dd/MM/yyyy",
'en-PR': "M/d/yyyy",
'en-PW': "dd/MM/yyyy",
'en-RW': "dd/MM/yyyy",
'en-SB': "dd/MM/yyyy",
'en-SC': "dd/MM/yyyy",
'en-SD': "dd/MM/yyyy",
'en-SE': "yyyy-MM-dd",
'en-SG': "d/M/yyyy",
'en-SH': "dd/MM/yyyy",
'en-SI': "dd/MM/yyyy",
'en-SL': "dd/MM/yyyy",
'en-SS': "dd/MM/yyyy",
'en-SX': "dd/MM/yyyy",
'en-SZ': "dd/MM/yyyy",
'en-TC': "dd/MM/yyyy",
'en-TK': "dd/MM/yyyy",
'en-TO': "dd/MM/yyyy",
'en-TT': "dd/MM/yyyy",
'en-TV': "dd/MM/yyyy",
'en-TZ': "dd/MM/yyyy",
'en-UG': "dd/MM/yyyy",
'en-UM': "M/d/yyyy",
'en-US': "M/d/yyyy",
'en-VC': "dd/MM/yyyy",
'en-VG': "dd/MM/yyyy",
'en-VI': "M/d/yyyy",
'en-VU': "dd/MM/yyyy",
'en-WS': "dd/MM/yyyy",
'en-ZA': "yyyy/MM/dd",
'en-ZM': "dd/MM/yyyy",
'en-ZW': "d/M/yyyy",
'eo-001': "yyyy-MM-dd",
'es': "dd/MM/yyyy",
'es-419': "d/M/yyyy",
'es-AR': "d/M/yyyy",
'es-BO': "d/M/yyyy",
'es-BR': "d/M/yyyy",
'es-BZ': "d/M/yyyy",
'es-CL': "dd-MM-yyyy",
'es-CO': "d/MM/yyyy",
'es-CR': "d/M/yyyy",
'es-CU': "d/M/yyyy",
'es-DO': "d/M/yyyy",
'es-EC': "d/M/yyyy",
'es-ES': "dd/MM/yyyy",
'es-GQ': "d/M/yyyy",
'es-GT': "d/MM/yyyy",
'es-HN': "d/M/yyyy",
'es-MX': "dd/MM/yyyy",
'es-NI': "d/M/yyyy",
'es-PA': "MM/dd/yyyy",
'es-PE': "d/MM/yyyy",
'es-PH': "d/M/yyyy",
'es-PR': "MM/dd/yyyy",
'es-PY': "d/M/yyyy",
'es-SV': "d/M/yyyy",
'es-US': "M/d/yyyy",
'es-UY': "d/M/yyyy",
'es-VE': "d/M/yyyy",
'et': "dd.MM.yyyy",
'et-EE': "dd.MM.yyyy",
'eu-ES': "yyyy/M/d",
'ewo-CM': "d/M/yyyy",
'fa-IR': "dd/MM/yyyy",
'ff-CM': "d/M/yyyy",
'ff-GN': "d/M/yyyy",
'ff-Latn-SN': "dd/MM/yyyy",
'ff-MR': "d/M/yyyy",
'ff-NG': "d/M/yyyy",
'fi': "d.M.yyyy",
'fi-FI': "d.M.yyyy",
'fil-PH': "M/d/yyyy",
'fo': "dd.MM.yyyy",
'fo-DK': "dd.MM.yyyy",
'fo-FO': "dd.MM.yyyy",
'fr': "dd/MM/yyyy",
'fr-029': "dd/MM/yyyy",
'fr-BE': "dd-MM-yy",
'fr-BF': "dd/MM/yyyy",
'fr-BI': "dd/MM/yyyy",
'fr-BJ': "dd/MM/yyyy",
'fr-BL': "dd/MM/yyyy",
'fr-CA': "yyyy-MM-dd",
'fr-CD': "dd/MM/yyyy",
'fr-CF': "dd/MM/yyyy",
'fr-CG': "dd/MM/yyyy",
'fr-CH': "dd.MM.yyyy",
'fr-CI': "dd/MM/yyyy",
'fr-CM': "dd/MM/yyyy",
'fr-DJ': "dd/MM/yyyy",
'fr-DZ': "dd/MM/yyyy",
'fr-FR': "dd/MM/yyyy",
'fr-GA': "dd/MM/yyyy",
'fr-GF': "dd/MM/yyyy",
'fr-GN': "dd/MM/yyyy",
'fr-GP': "dd/MM/yyyy",
'fr-GQ': "dd/MM/yyyy",
'fr-HT': "dd/MM/yyyy",
'fr-KM': "dd/MM/yyyy",
'fr-LU': "dd/MM/yyyy",
'fr-MA': "dd/MM/yyyy",
'fr-MC': "dd/MM/yyyy",
'fr-MF': "dd/MM/yyyy",
'fr-MG': "dd/MM/yyyy",
'fr-ML': "dd/MM/yyyy",
'fr-MQ': "dd/MM/yyyy",
'fr-MR': "dd/MM/yyyy",
'fr-MU': "dd/MM/yyyy",
'fr-NC': "dd/MM/yyyy",
'fr-NE': "dd/MM/yyyy",
'fr-PF': "dd/MM/yyyy",
'fr-PM': "dd/MM/yyyy",
'fr-RE': "dd/MM/yyyy",
'fr-RW': "dd/MM/yyyy",
'fr-SC': "dd/MM/yyyy",
'fr-SN': "dd/MM/yyyy",
'fr-SY': "dd/MM/yyyy",
'fr-TD': "dd/MM/yyyy",
'fr-TG': "dd/MM/yyyy",
'fr-TN': "dd/MM/yyyy",
'fr-VU': "dd/MM/yyyy",
'fr-WF': "dd/MM/yyyy",
'fr-YT': "dd/MM/yyyy",
'fur-IT': "dd/MM/yyyy",
'fy-NL': "dd-MM-yyyy",
'ga': "dd/MM/yyyy",
'ga-IE': "dd/MM/yyyy",
'gd': "dd/MM/yyyy",
'gd-GB': "dd/MM/yyyy",
'gl': "dd/MM/yyyy",
'gl-ES': "dd/MM/yyyy",
'gn': "dd/MM/yyyy",
'gn-PY': "dd/MM/yyyy",
'gsw-CH': "dd.MM.yyyy",
'gsw-FR': "dd/MM/yyyy",
'gsw-LI': "dd.MM.yyyy",
'gu': "dd-MM-yy",
'gu-IN': "dd-MM-yy",
'guz-KE': "dd/MM/yyyy",
'gv-IM': "dd/MM/yyyy",
'ha-Latn-GH': "d/M/yyyy",
'ha-Latn-NE': "d/M/yyyy",
'ha-Latn-NG': "d/M/yyyy",
'haw-US': "d/M/yyyy",
'he-IL': "dd/MM/yyyy",
'hi-IN': "dd-MM-yyyy",
'hr': "d.M.yyyy.",
'hr-BA': "d. M. yyyy.",
'hr-HR': "d.M.yyyy.",
'hsb-DE': "d.M.yyyy",
'hu': "yyyy. MM. dd.",
'hu-HU': "yyyy. MM. dd.",
'hy-AM': "dd.MM.yyyy",
'ia-001': "yyyy/MM/dd",
'ia-FR': "yyyy/MM/dd",
'ibb-NG': "d/M/yyyy",
'id': "dd/MM/yyyy",
'id-ID': "dd/MM/yyyy",
'ig-NG': "dd/MM/yyyy",
'ii-CN': "yyyy/M/d",
'is': "d.M.yyyy",
'is-IS': "d.M.yyyy",
'it': "dd/MM/yyyy",
'it-CH': "dd.MM.yyyy",
'it-IT': "dd/MM/yyyy",
'it-SM': "dd/MM/yyyy",
'it-VA': "dd/MM/yyyy",
'iu-Cans-CA': "d/M/yyyy",
'iu-Latn-CA': "d/MM/yyyy",
'ja-JP': "yyyy/MM/dd",
'jgo-CM': "yyyy-MM-dd",
'jmc-TZ': "dd/MM/yyyy",
'jv-Java-ID': "dd/MM/yyyy",
'jv-Latn-ID': "dd/MM/yyyy",
'ka-GE': "dd.MM.yyyy",
'kab-DZ': "d/M/yyyy",
'kam-KE': "dd/MM/yyyy",
'kde-TZ': "dd/MM/yyyy",
'kea-CV': "d/M/yyyy",
'khq-ML': "d/M/yyyy",
'ki': "dd/MM/yyyy",
'ki-KE': "dd/MM/yyyy",
'kk-KZ': "dd.MM.yyyy",
'kkj-CM': "dd/MM yyyy",
'kl-GL': "dd-MM-yyyy",
'kln-KE': "dd/MM/yyyy",
'km': "dd/MM/yy",
'km-KH': "dd/MM/yy",
'kn': "dd-MM-yy",
'kn-IN': "dd-MM-yy",
'ko-KP': "yyyy. M. d.",
'ko-KR': "yyyy-MM-dd",
'kok-IN': "dd-MM-yyyy",
'kr': "d/M/yyyy",
'kr-NG': "d/M/yyyy",
'ks-Arab-IN': "M/d/yyyy",
'ks-Deva-IN': "dd-MM-yyyy",
'ksb-TZ': "dd/MM/yyyy",
'ksf-CM': "d/M/yyyy",
'ksh-DE': "d. M. yyyy",
'ku-Arab-IQ': "yyyy/MM/dd",
'ku-Arab-IR': "dd/MM/yyyy",
'kw': "dd/MM/yyyy",
'kw-GB': "dd/MM/yyyy",
'ky': "d-MMM yy",
'ky-KG': "d-MMM yy",
'la': "dd/MM/yyyy",
'la-001': "dd/MM/yyyy",
'lag-TZ': "dd/MM/yyyy",
'lb': "dd.MM.yy",
'lb-LU': "dd.MM.yy",
'lg-UG': "dd/MM/yyyy",
'lkt-US': "M/d/yyyy",
'ln-AO': "d/M/yyyy",
'ln-CD': "d/M/yyyy",
'ln-CF': "d/M/yyyy",
'ln-CG': "d/M/yyyy",
'lo-LA': "d/M/yyyy",
'lrc-IQ': "yyyy-MM-dd",
'lrc-IR': "dd/MM/yyyy",
'lt': "yyyy-MM-dd",
'lt-LT': "yyyy-MM-dd",
'lu': "d/M/yyyy",
'lu-CD': "d/M/yyyy",
'luo-KE': "dd/MM/yyyy",
'luy-KE': "dd/MM/yyyy",
'lv': "dd.MM.yyyy",
'lv-LV': "dd.MM.yyyy",
'mas-KE': "dd/MM/yyyy",
'mas-TZ': "dd/MM/yyyy",
'mer-KE': "dd/MM/yyyy",
'mfe-MU': "d/M/yyyy",
'mg': "yyyy-MM-dd",
'mg-MG': "yyyy-MM-dd",
'mgh-MZ': "dd/MM/yyyy",
'mgo-CM': "yyyy-MM-dd",
'mi-NZ': "dd/MM/yyyy",
'mk': "dd.M.yyyy",
'mk-MK': "dd.M.yyyy",
'ml': "d/M/yyyy",
'ml-IN': "d/M/yyyy",
'mn': "yyyy.MM.dd",
'mn-MN': "yyyy.MM.dd",
'mn-Mong-CN': "yyyy/M/d",
'mn-Mong-MN': "yyyy/M/d",
'mni-IN': "dd/MM/yyyy",
'moh-CA': "M/d/yyyy",
'mr': "dd-MM-yyyy",
'mr-IN': "dd-MM-yyyy",
'ms': "d/MM/yyyy",
'ms-BN': "d/MM/yyyy",
'ms-MY': "d/MM/yyyy",
'ms-SG': "d/MM/yyyy",
'mt': "dd/MM/yyyy",
'mt-MT': "dd/MM/yyyy",
'mua-CM': "d/M/yyyy",
'my': "dd-MM-yyyy",
'my-MM': "dd-MM-yyyy",
'mzn-IR': "dd/MM/yyyy",
'naq-NA': "dd/MM/yyyy",
'nb-NO': "dd.MM.yyyy",
'nb-SJ': "dd.MM.yyyy",
'nd-ZW': "dd/MM/yyyy",
'nds-DE': "d.MM.yyyy",
'nds-NL': "d.MM.yyyy",
'ne': "M/d/yyyy",
'ne-IN': "yyyy/M/d",
'ne-NP': "M/d/yyyy",
'nl': "d-M-yyyy",
'nl-AW': "dd-MM-yyyy",
'nl-BE': "d/MM/yyyy",
'nl-BQ': "dd-MM-yyyy",
'nl-CW': "dd-MM-yyyy",
'nl-NL': "d-M-yyyy",
'nl-SR': "dd-MM-yyyy",
'nl-SX': "dd-MM-yyyy",
'nmg-CM': "d/M/yyyy",
'nn-NO': "dd.MM.yyyy",
'nnh-CM': "dd/MM/yyyy",
'no': "dd.MM.yyyy",
'nqo-GN': "dd/MM/yyyy",
'nr': "yyyy-MM-dd",
'nr-ZA': "yyyy-MM-dd",
'nso-ZA': "yyyy-MM-dd",
'nus-SS': "d/MM/yyyy",
'nyn-UG': "dd/MM/yyyy",
'oc-FR': "dd/MM/yyyy",
'om': "dd/MM/yyyy",
'om-ET': "dd/MM/yyyy",
'om-KE': "dd/MM/yyyy",
'or-IN': "dd-MM-yy",
'os-GE': "dd.MM.yyyy",
'os-RU': "dd.MM.yyyy",
'pa': "dd-MM-yy",
'pa-Arab-PK': "dd-MM-yy",
'pa-IN': "dd-MM-yy",
'pap-029': "d-M-yyyy",
'pl': "dd.MM.yyyy",
'pl-PL': "dd.MM.yyyy",
'prg-001': "dd.MM.yyyy",
'prs-AF': "yyyy/M/d",
'ps': "yyyy/M/d",
'ps-AF': "yyyy/M/d",
'pt': "dd/MM/yyyy",
'pt-AO': "dd/MM/yyyy",
'pt-BR': "dd/MM/yyyy",
'pt-CH': "dd/MM/yyyy",
'pt-CV': "dd/MM/yyyy",
'pt-GQ': "dd/MM/yyyy",
'pt-GW': "dd/MM/yyyy",
'pt-LU': "dd/MM/yyyy",
'pt-MO': "dd/MM/yyyy",
'pt-MZ': "dd/MM/yyyy",
'pt-PT': "dd/MM/yyyy",
'pt-ST': "dd/MM/yyyy",
'pt-TL': "dd/MM/yyyy",
'quc-Latn-GT': "dd/MM/yyyy",
'quz-BO': "dd/MM/yyyy",
'quz-EC': "dd/MM/yyyy",
'quz-PE': "dd/MM/yyyy",
'rm-CH': "dd-MM-yyyy",
'rn-BI': "d/M/yyyy",
'ro': "dd.MM.yyyy",
'ro-MD': "dd.MM.yyyy",
'ro-RO': "dd.MM.yyyy",
'rof-TZ': "dd/MM/yyyy",
'ru': "dd.MM.yyyy",
'ru-BY': "dd.MM.yyyy",
'ru-KG': "dd.MM.yyyy",
'ru-KZ': "dd.MM.yyyy",
'ru-MD': "dd.MM.yyyy",
'ru-RU': "dd.MM.yyyy",
'ru-UA': "dd.MM.yyyy",
'rw': "yyyy-MM-dd",
'rw-RW': "yyyy-MM-dd",
'rwk-TZ': "dd/MM/yyyy",
'sa': "dd-MM-yyyy",
'sa-IN': "dd-MM-yyyy",
'sah-RU': "dd.MM.yyyy",
'saq-KE': "dd/MM/yyyy",
'sbp-TZ': "dd/MM/yyyy",
'sd': "dd/MM/yyyy",
'sd-Arab-PK': "dd/MM/yyyy",
'sd-Deva-IN': "dd/MM/yyyy",
'se': "yyyy-MM-dd",
'se-FI': "d.M.yyyy",
'se-NO': "yyyy-MM-dd",
'se-SE': "yyyy-MM-dd",
'seh-MZ': "d/M/yyyy",
'ses-ML': "d/M/yyyy",
'sg': "d/M/yyyy",
'sg-CF': "d/M/yyyy",
'shi-Latn-MA': "d/M/yyyy",
'shi-Tfng-MA': "d/M/yyyy",
'si': "yyyy-MM-dd",
'si-LK': "yyyy-MM-dd",
'sk': "d. M. yyyy",
'sk-SK': "d. M. yyyy",
'sl': "d. MM. yyyy",
'sl-SI': "d. MM. yyyy",
'sma-NO': "dd.MM.yyyy",
'sma-SE': "yyyy-MM-dd",
'smj-NO': "dd.MM.yyyy",
'smj-SE': "yyyy-MM-dd",
'smn-FI': "d.M.yyyy",
'sms-FI': "d.M.yyyy",
'sn': "yyyy-MM-dd",
'sn-Latn-ZW': "yyyy-MM-dd",
'so': "dd/MM/yyyy",
'so-DJ': "dd/MM/yyyy",
'so-ET': "dd/MM/yyyy",
'so-KE': "dd/MM/yyyy",
'so-SO': "dd/MM/yyyy",
'sq-AL': "d.M.yyyy",
'sq-MK': "d.M.yyyy",
'sq-XK': "d.M.yyyy",
'sr': "d.M.yyyy.",
'sr-Cyrl-BA': "d.M.yyyy.",
'sr-Cyrl-ME': "d.M.yyyy.",
'sr-Cyrl-RS': "dd.MM.yyyy.",
'sr-Cyrl-XK': "d.M.yyyy.",
'sr-Latn-BA': "d.M.yyyy.",
'sr-Latn-ME': "d.M.yyyy.",
'sr-Latn-RS': "d.M.yyyy.",
'sr-Latn-XK': "d.M.yyyy.",
'ss': "yyyy-MM-dd",
'ss-SZ': "yyyy-MM-dd",
'ss-ZA': "yyyy-MM-dd",
'ssy-ER': "dd/MM/yyyy",
'st': "yyyy-MM-dd",
'st-LS': "yyyy-MM-dd",
'st-ZA': "yyyy-MM-dd",
'sv': "yyyy-MM-dd",
'sv-AX': "yyyy-MM-dd",
'sv-FI': "dd-MM-yyyy",
'sv-SE': "yyyy-MM-dd",
'sw-CD': "dd/MM/yyyy",
'sw-KE': "dd/MM/yyyy",
'sw-TZ': "dd/MM/yyyy",
'sw-UG': "dd/MM/yyyy",
'syr-SY': "dd/MM/yyyy",
'ta-IN': "dd-MM-yyyy",
'ta-LK': "d/M/yyyy",
'ta-MY': "d/M/yyyy",
'ta-SG': "d/M/yyyy",
'te-IN': "dd-MM-yy",
'teo-KE': "dd/MM/yyyy",
'teo-UG': "dd/MM/yyyy",
'tg': "dd.MM.yyyy",
'tg-Cyrl-TJ': "dd.MM.yyyy",
'th': "d/M/yyyy",
'th-TH': "d/M/yyyy",
'ti-ER': "dd/MM/yyyy",
'ti-ET': "dd/MM/yyyy",
'tig-ER': "dd/MM/yyyy",
'tk': "dd.MM.yy 'ý.'",
'tk-TM': "dd.MM.yy 'ý.'",
'tn': "yyyy-MM-dd",
'tn-BW': "yyyy-MM-dd",
'tn-ZA': "yyyy-MM-dd",
'to': "d/M/yyyy",
'to-TO': "d/M/yyyy",
'tr': "d.MM.yyyy",
'tr-CY': "d.MM.yyyy",
'tr-TR': "d.MM.yyyy",
'ts-ZA': "yyyy-MM-dd",
'tt': "dd.MM.yyyy",
'tt-RU': "dd.MM.yyyy",
'twq-NE': "d/M/yyyy",
'tzm-Arab-MA': "d/M/yyyy",
'tzm-Latn-DZ': "dd-MM-yyyy",
'tzm-Latn-MA': "dd/MM/yyyy",
'tzm-Tfng-MA': "dd-MM-yyyy",
'ug': "yyyy-M-d",
'ug-CN': "yyyy-M-d",
'uk-UA': "dd.MM.yyyy",
'ur-IN': "d/M/yy",
'ur-PK': "dd/MM/yyyy",
'uz': "dd/MM/yyyy",
'uz-Arab-AF': "dd/MM yyyy",
'uz-Cyrl-UZ': "dd/MM/yyyy",
'uz-Latn-UZ': "dd/MM/yyyy",
'vai-Latn-LR': "dd/MM/yyyy",
'vai-Vaii-LR': "dd/MM/yyyy",
've': "yyyy-MM-dd",
've-ZA': "yyyy-MM-dd",
'vi': "dd/MM/yyyy",
'vi-VN': "dd/MM/yyyy",
'vo-001': "yyyy-MM-dd",
'vun-TZ': "dd/MM/yyyy",
'wae-CH': "yyyy-MM-dd",
'wal-ET': "dd/MM/yyyy",
'wo-SN': "dd/MM/yyyy",
'xh-ZA': "yyyy-MM-dd",
'xog-UG': "dd/MM/yyyy",
'yav-CM': "d/M/yyyy",
'yi-001': "dd/MM/yyyy",
'yo-BJ': "dd/MM/yyyy",
'yo-NG': "dd/MM/yyyy",
'zgh-Tfng-MA': "d/M/yyyy",
'zh-CN': "yyyy/M/d",
'zh-Hans-HK': "d/M/yyyy",
'zh-Hans-MO': "d/M/yyyy",
'zh-HK': "d/M/yyyy",
'zh-MO': "d/M/yyyy",
'zh-SG': "d/M/yyyy",
'zh-TW': "yyyy/M/d",
'zu-ZA': "M/d/yyyy",
};
I don't know of a way to do that (you can get the language and try to deduct the locale from that).
I tried to cook a little something to try and do that (only tested on Firefox with one locale). should work as long as the short date string includes the date as digits, so it might fail for, say, arabic. It might have other bugs too, i don't know all the different locales peculiarities, this is just a concept...
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();
The outputted format will be:
- Y: the number of digits to represent years
- dD = short day (i.e. use only one digit when possible)
- DD = long day format (i.e. two digits always)
- mM/MM - same for months
So in my browser, the shortDateformat you get is "MM/DD/YYYY".
I believe you can use this one:
new Date().toLocaleDateString();
Which can accept parameters for the locale:
new Date().toLocaleDateString("en-us");
new Date().toLocaleDateString("he-il");
I see it is supported by chrome, IE, edge, although results may vary it does a pretty good job for me.
This depends on the browser's toLocaleDateString()
implementation.
For example in chrome you will get something like: Tuesday, January DD, YYYY
new Date(YOUR_DATE_STRING).toLocaleDateString(navigator.language)
~ combination of answers of above
One liner using Intl:
new Intl.DateTimeFormat(undefined, { dateStyle: 'short', timeStyle: 'short' }).format(date)
date is the date you want to convert. undefined tells Intl to use the browser locale (you could also pass a locale string here).
More information on the DateTimeFormat function can be found here.
Intl is supported by many browsers already. If you need to support old browsers, you could use a polyfill (CDN or npm).
Using en-CA as an example, if you're using date-fns
:
<script type="module">
import { enCA } from 'https://cdn.skypack.dev/date-fns/locale';
console.log(enCA.formatLong.date({width:'short'}))
// yyyy-MM-dd
</script>
Source: https://github.com/date-fns/date-fns/blob/master/src/locale/en-CA/_lib/formatLong/index.js
For CLDR & Paul Irish:
import locale from 'cldr-dates-modern/main/en-CA/ca-gregorian.json'
console.log(locale.main['en-CA'].dates.calendars.gregorian.dateFormats.short)
// y-MM-dd
Source: https://github.com/unicode-org/cldr-json/blob/main/cldr-json/cldr-dates-modern/main/en-CA/ca-gregorian.json#L326
Use case: we used this value as the placeholder attribute for an input.
There is no easy way. If you want a reliable, cross-browser solution, you'd have to build a lookup table of date, and time format strings, by culture. To format a date, parse the corresponding format string, extract the relevant parts from the date, i.e. day, month, year, and append them together.
This is essentially what Microsoft does with their AJAX library, as shown in @no's answer.
Slight modification to Mitali's response. To dynamically generate the language for a more localized solution.
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);
This is a common problem in JavaScript implementations.
ECMA says Date#toLocaleDateString()
is implementation-defined.
So JavaScript implementations are free to implement host-specific date-specific locales.
The problem is that most JavaScript implementations pass on the job of printing dates to the ICU library which itself does not normally support host-specific locale definitions, even though it is desired.
There is a "@compat=host
" option for locales that ICU supports, but it's rarely, if ever, used and most JavaScript implementations seem to prevent setting such options on a selected locale.
Found this thread while looking for a way to generate localized but short dates in all browsers without any extra library, just a simple call to format server generated ISO dates.
I went with a combination of holden321 and mwrf's answers. Storing the formats external to the function because it's handier that way and storing the current locale format because it's always useful.
The function can be passed anything that can be passed to a date constructor to get a valid date, and also a language or format for flexibility.
You need to set up the list of formats and a couple more things first:
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';
Then the function is:
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
EDIT: Call with no arguments to use the user's locale, of course:
getLocalizedDate('2013-03-01T00:00:00')
= 01/03/2013
(for me)
If you are a fan of extending prototypes, the first lines of the function definition become:
Date.prototype.getLocalized = function(options)
{
var date = this;
Called of course like this:
new Date('2013-03-01T00:00:00').getLocalized({lang:'sk-SK'})
= 1. 3. 2013
EDIT: Again, call with no arguments to use the user's locale:
new Date('2013-03-01T00:00:00').getLocalized()
= 01/03/2013
(for me)
const newDate = new Date(); const currentDate = newDate.toLocaleDateString("sv-SE",{year: 'numeric', month: 'numeric', day: 'numeric' });
How about:
// pass in a localeAbbv string to get the format for a specific locale,
// otherwise the browser's default localte will be used
function getLocaleShortDateFormat(localeAbbv?: string) {
return new Intl.DateTimeFormat(Intl.DateTimeFormat(localeAbbv).resolvedOptions().locale)
.format(new Date(2021, 0, 2))
.replace(/0?1/, "MM").replace(/0?2/, "DD").replace(/(?:20)?21/, "YYYY");
}
This is just taking a known date (2 Jan 2021), formatting it using the current locale, and then replacing the known values (2021=year, 1=month, 2=day) with the appropriate date strings.
This uses standards-compliant method calls and I think should work in all modern(ish) browsers.
Actually I think it's better to use "-" instead of "/" for separating the components of the date when formatting dates for displaying to users. Couple of reasons for this: 1) it provides better UX in that it's easier to discern the components because "-" is not as tall as the numbers so the breaks between the date components stand out better, and 2) it's closer to the ISO 8601 format, which uses dashes between the date components. To do this, just add another .replace(/\//g, "-")
to the chain.
If you want to get a date from the form .you have to use this.
const date_ = new Date(props.date);
const month = date_.toLocaleString("en", { month: "long" });
const day = date_.toLocaleString("en-029", { day: "2-digit" });
const year = date_.toLocaleString("en-US", { year: "numeric" });
Let the browser handle the positioning. Use unique numbers in the date to be able to identify them and replace them with the format of your choice (in my case DD, MM and YYYY) and change the separator if necessary:
const getLocaleDateFormat = (separator: string = '-') => {
// A fake date and with each part different to be able to identify later
const fakeDate = new Date();
fakeDate.setDate(22);
fakeDate.setMonth(10); // index
fakeDate.setFullYear(1999);
const format = new Intl.DateTimeFormat(navigator.language)
.format(fakeDate)
.replace(fakeDate.getDate().toString(), 'DD')
// also consider the month as an index
.replace((fakeDate.getMonth() + 1).toString(), 'MM')
.replace(fakeDate.getFullYear().toString(), 'YYYY');
return format.replace(/\W/g, separator);
};
For an output such as MO/DY/YEAR or DY/MO/YEAR (or whichever format is pertinent to your locale)
let time = new Date()
let timestampDate = new Date(time).toLocaleDateString(navigator.language)
(2021)
Just use .toLocaleDateString()
, the browser will handle everything for you, e.g.:
console.log(
new Date().toLocaleDateString()
); // -> something like '7/18/2021', depending on user's location
To verify it works for anybody, pass in a locale string to test:
const toVerify = [
'af-ZA',
'am-ET',
'ar-AE',
'ar-BH',
'ar-DZ',
'ar-EG',
'ar-IQ',
'ar-JO',
'ar-KW',
'ar-LB',
'ar-LY',
'ar-MA',
'ar-OM',
'ar-QA',
'ar-SA',
'ar-SY',
'ar-TN',
'ar-YE',
'arn-CL',
'as-IN',
'az-Cyrl-AZ',
'az-Latn-AZ',
'ba-RU',
'be-BY',
'bg-BG',
'bn-BD',
'bn-IN',
'bo-CN',
'br-FR',
'bs-Cyrl-BA',
'bs-Latn-BA',
'ca-ES',
'co-FR',
'cs-CZ',
'cy-GB',
'da-DK',
'de-AT',
'de-CH',
'de-DE',
'de-LI',
'de-LU',
'dsb-DE',
'dv-MV',
'el-GR',
'en-029',
'en-AU',
'en-BZ',
'en-CA',
'en-GB',
'en-IE',
'en-IN',
'en-JM',
'en-MY',
'en-NZ',
'en-PH',
'en-SG',
'en-TT',
'en-US',
'en-ZA',
'en-ZW',
'es-AR',
'es-BO',
'es-CL',
'es-CO',
'es-CR',
'es-DO',
'es-EC',
'es-ES',
'es-GT',
'es-HN',
'es-MX',
'es-NI',
'es-PA',
'es-PE',
'es-PR',
'es-PY',
'es-SV',
'es-US',
'es-UY',
'es-VE',
'et-EE',
'eu-ES',
'fa-IR',
'fi-FI',
'fil-PH',
'fo-FO',
'fr-BE',
'fr-CA',
'fr-CH',
'fr-FR',
'fr-LU',
'fr-MC',
'fy-NL',
'ga-IE',
'gd-GB',
'gl-ES',
'gsw-FR',
'gu-IN',
'ha-Latn-NG',
'he-IL',
'hi-IN',
'hr-BA',
'hr-HR',
'hsb-DE',
'hu-HU',
'hy-AM',
'id-ID',
'ig-NG',
'ii-CN',
'is-IS',
'it-CH',
'it-IT',
'iu-Cans-CA',
'iu-Latn-CA',
'ja-JP',
'ka-GE',
'kk-KZ',
'kl-GL',
'km-KH',
'kn-IN',
'ko-KR',
'kok-IN',
'ky-KG',
'lb-LU',
'lo-LA',
'lt-LT',
'lv-LV',
'mi-NZ',
'mk-MK',
'ml-IN',
'mn-MN',
'mn-Mong-CN',
'moh-CA',
'mr-IN',
'ms-BN',
'ms-MY',
'mt-MT',
'nb-NO',
'ne-NP',
'nl-BE',
'nl-NL',
'nn-NO',
'nso-ZA',
'oc-FR',
'or-IN',
'pa-IN',
'pl-PL',
'prs-AF',
'ps-AF',
'pt-BR',
'pt-PT',
'qut-GT',
'quz-BO',
'quz-EC',
'quz-PE',
'rm-CH',
'ro-RO',
'ru-RU',
'rw-RW',
'sa-IN',
'sah-RU',
'se-FI',
'se-NO',
'se-SE',
'si-LK',
'sk-SK',
'sl-SI',
'sma-NO',
'sma-SE',
'smj-NO',
'smj-SE',
'smn-FI',
'sms-FI',
'sq-AL',
'sr-Cyrl-BA',
'sr-Cyrl-CS',
'sr-Cyrl-ME',
'sr-Cyrl-RS',
'sr-Latn-BA',
'sr-Latn-CS',
'sr-Latn-ME',
'sr-Latn-RS',
'sv-FI',
'sv-SE',
'sw-KE',
'syr-SY',
'ta-IN',
'te-IN',
'tg-Cyrl-TJ',
'th-TH',
'tk-TM',
'tn-ZA',
'tr-TR',
'tt-RU',
'tzm-Latn-DZ',
'ug-CN',
'uk-UA',
'ur-PK',
'uz-Cyrl-UZ',
'uz-Latn-UZ',
'vi-VN',
'wo-SN',
'xh-ZA',
'yo-NG',
'zh-CN',
'zh-HK',
'zh-MO',
'zh-SG',
'zh-TW',
'zu-ZA',
];
toVerify.forEach((locale) => {
console.log(locale, new Date().toLocaleDateString(locale));
});
Try this:
new Date().toLocaleFormat("%x");
All formats for this function can be found here: http://pubs.opengroup.org/onlinepubs/007908799/xsh/strftime.html
Try to use Date.CultureInfo.formatPatterns.shortDate
本文标签: datetimeGet Locale Short Date Format using javascriptStack Overflow
版权声明:本文标题:datetime - Get Locale Short Date Format using javascript - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1736704497a1948600.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论