toLocaleDateString() 短格式
toLocaleDateString() short format
我想要 Date.toLocaleDateString() 的缩写,但采用本地格式。有很多解决方案对 yyyy-mm-dd 格式进行硬编码,但我希望它依赖于托管页面的系统。到目前为止,这是我的功能:
function getDate(dateTimeString)
{
var date = getDateTime(dateTimeString);
var options = { year: "numeric", month: "numeric", day: "numeric" };
return date.toLocaleDateString( date.getTimezoneOffset(), options );
}
但是这个 returns 它是这样的:2015 年 1 月 28 日,星期三,我不想要。任何 suggestions/ideas?
PS:它不是浏览器,使用它的人很可能没有互联网连接;所有信息都是从本地数据库中获取的,所以我不能使用任何像这样的花哨的东西 How to get visitor's location (i.e. country) using javascript geolocation.
是的。它非常简单。您可以按如下方式使用日期对象:
var d = new Date();
var mm = d.getMonth() + 1;
var dd = d.getDate();
var yy = d.getFullYear();
然后你应该有你需要的数字来形成你需要的任何格式的字符串。
var myDateString = yy + '-' + mm + '-' + dd; //(US)
请注意,如果数字是单个数字,这将给出类似 2015-1-2 的内容,如果您需要 2015-01-02,则需要进一步转换。
另请注意,这只会给出 'client' 日期,即。用户系统上的日期。这应该是他们的当地时间。如果您需要服务器时间,那么您将需要某种 api 来调用。
显然 Date.prototype.toLocaleDateString() 在浏览器之间不一致。您可以实现短日期格式的不同变体,如下所述:
How format JavaScript Date with regard to the browser culture?
您可以尝试类似的方法:
var date = new Date(Date.UTC(2015, 0, 28, 4, 0, 0));
console.log(date.toLocaleDateString("nl",{year:"2-digit",month:"2-digit", day:"2-digit"}));
至少在 Chrome (48.0.2564.116) 中给我“28-01-15”。
Firefox 仅 returns“01/28/2015”,而 phantomJS returns“28/01/2015”,与区域设置无关。
我认为函数 toLocaleDateString 使用设备上的默认本地数据。
尝试使用此代码检查输出:
// America/Los_Angeles for the US
// US English uses month-day-year order
console.log(date.toLocaleDateString('en-US'));
// → "12/19/2012"
// British English uses day-month-year order
console.log(date.toLocaleDateString('en-GB'));
// → "20/12/2012"
// Korean uses year-month-day order
console.log(date.toLocaleDateString('ko-KR'));
// → "2012. 12. 20."
// Arabic in most Arabic speaking countries uses real Arabic digits
console.log(date.toLocaleDateString('ar-EG'));
// → "٢٠/١٢/٢٠١٢"
// chinese
console.log(date.toLocaleDateString('zh-Hans-CN'));
// → "2012/12/20"
请注意,NodeJS 只会附带设备的语言环境格式,因此当您为 LocaleDateString 指定参数时,例如:
new Date("1983-March-25").toLocaleDateString('fr-CA', { year: 'numeric', month: '2-digit', day: '2-digit' })
'03/25/1983'
请注意,您希望 'fr-CA' 为您提供 YYYY-MM-DD,但事实并非如此。那是因为它只使用美国语言环境,因为我的节点实例在美国语言环境中是 运行。
Node github 帐户上实际上有一份错误报告描述了问题和解决方案:
https://github.com/nodejs/node/issues/8500
提供的解决方案是安装 full-icu
模块。
日期:.toLocaleDateString('en-US', {day: "numeric"})
完整月份:.toLocaleDateString('en-US', {month: "long"})
简而言之一个月:.toLocaleDateString('en-US', {month: "short"})
全天:.toLocaleDateString('en-US', {day: "long"})
简而言之:.toLocaleDateString('en-US', {day: "short"})
JavaScript 日期 toLocaleString()
此方法使用语言特定格式将日期格式化为字符串。
示例:
Only date :
var n = new Date();
console.log("es-CL: " + n.toLocaleDateString("es-CL"));
// es-CL: 03-09-2021
Date with Time :
var n = new Date();
console.log("es-CL: " + n.toLocaleString("es-CL"));
// es-CL: 03-09-2021 17:56:58
List are here :
ar-SA: ٢٦/١/١٤٤٣ هـ في ٥:٥٦:٥٨ م
bn-BD: ৩/৯/২০২১ ৫:৫৬:৫৮ PM
bn-IN: ৩/৯/২০২১ ৫:৫৬:৫৮ PM
cs-CZ: 3. 9. 2021 17:56:58
da-DK: 3.9.2021 17.56.58
de-AT: 3.9.2021, 17:56:58
de-CH: 3.9.2021, 17:56:58
de-DE: 3.9.2021, 17:56:58
el-GR: 3/9/2021, 5:56:58 μ.μ.
en-AU: 03/09/2021, 5:56:58 pm
en-CA: 2021-09-03, 5:56:58 p.m.
en-GB: 03/09/2021, 17:56:58
en-IE: 3/9/2021, 17:56:58
en-IN: 3/9/2021, 5:56:58 pm
en-NZ: 3/09/2021, 5:56:58 pm
en-US: 9/3/2021, 5:56:58 PM
en-ZA: 2021/09/03, 17:56:58
es-AR: 3/9/2021 17:56:58
es-CL: 03-09-2021 17:56:58
es-CO: 3/9/2021, 5:56:58 p. m.
es-ES: 3/9/2021 17:56:58
es-MX: 3/9/2021 17:56:58
es-US: 3/9/2021 5:56:58 p. m.
fi-FI: 3.9.2021 klo 17.56.58
fr-BE: 03/09/2021, 17:56:58
fr-CA: 2021-09-03, 17 h 56 min 58 s
fr-CH: 03.09.2021, 17:56:58
fr-FR: 03/09/2021, 17:56:58
he-IL: 3.9.2021, 17:56:58
hi-IN: 3/9/2021, 5:56:58 pm
hu-HU: 2021. 09. 03. 17:56:58
id-ID: 3/9/2021 17.56.58
it-CH: 3/9/2021, 17:56:58
it-IT: 3/9/2021, 17:56:58
ja-JP: 2021/9/3 17:56:58
ko-KR: 2021. 9. 3. 오후 5:56:58
nl-BE: 3/9/2021 17:56:58
nl-NL: 3-9-2021 17:56:58
no-NO: 3.9.2021, 17:56:58
pl-PL: 3.09.2021, 17:56:58
pt-BR: 03/09/2021 17:56:58
pt-PT: 03/09/2021, 17:56:58
ro-RO: 03.09.2021, 17:56:58
ru-RU: 03.09.2021, 17:56:58
sk-SK: 3. 9. 2021, 17:56:58
sv-SE: 2021-09-03 17:56:58
ta-IN: 3/9/2021, பிற்பகல் 5:56:58
ta-LK: 3/9/2021, 17:56:58
th-TH: 3/9/2564 17:56:58
tr-TR: 03.09.2021 17:56:58
zh-CN: 2021/9/3 下午5:56:58
zh-HK: 3/9/2021 下午5:56:58
zh-TW: 2021/9/3 下午5:56:58
const options = { year: 'numeric', month: 'numeric', day: 'numeric' }
const new Date(date).toLocaleDateString('en', options)
我想要 Date.toLocaleDateString() 的缩写,但采用本地格式。有很多解决方案对 yyyy-mm-dd 格式进行硬编码,但我希望它依赖于托管页面的系统。到目前为止,这是我的功能:
function getDate(dateTimeString)
{
var date = getDateTime(dateTimeString);
var options = { year: "numeric", month: "numeric", day: "numeric" };
return date.toLocaleDateString( date.getTimezoneOffset(), options );
}
但是这个 returns 它是这样的:2015 年 1 月 28 日,星期三,我不想要。任何 suggestions/ideas?
PS:它不是浏览器,使用它的人很可能没有互联网连接;所有信息都是从本地数据库中获取的,所以我不能使用任何像这样的花哨的东西 How to get visitor's location (i.e. country) using javascript geolocation.
是的。它非常简单。您可以按如下方式使用日期对象:
var d = new Date();
var mm = d.getMonth() + 1;
var dd = d.getDate();
var yy = d.getFullYear();
然后你应该有你需要的数字来形成你需要的任何格式的字符串。
var myDateString = yy + '-' + mm + '-' + dd; //(US)
请注意,如果数字是单个数字,这将给出类似 2015-1-2 的内容,如果您需要 2015-01-02,则需要进一步转换。
另请注意,这只会给出 'client' 日期,即。用户系统上的日期。这应该是他们的当地时间。如果您需要服务器时间,那么您将需要某种 api 来调用。
显然 Date.prototype.toLocaleDateString() 在浏览器之间不一致。您可以实现短日期格式的不同变体,如下所述: How format JavaScript Date with regard to the browser culture?
您可以尝试类似的方法:
var date = new Date(Date.UTC(2015, 0, 28, 4, 0, 0));
console.log(date.toLocaleDateString("nl",{year:"2-digit",month:"2-digit", day:"2-digit"}));
至少在 Chrome (48.0.2564.116) 中给我“28-01-15”。
Firefox 仅 returns“01/28/2015”,而 phantomJS returns“28/01/2015”,与区域设置无关。
我认为函数 toLocaleDateString 使用设备上的默认本地数据。
尝试使用此代码检查输出:
// America/Los_Angeles for the US
// US English uses month-day-year order
console.log(date.toLocaleDateString('en-US'));
// → "12/19/2012"
// British English uses day-month-year order
console.log(date.toLocaleDateString('en-GB'));
// → "20/12/2012"
// Korean uses year-month-day order
console.log(date.toLocaleDateString('ko-KR'));
// → "2012. 12. 20."
// Arabic in most Arabic speaking countries uses real Arabic digits
console.log(date.toLocaleDateString('ar-EG'));
// → "٢٠/١٢/٢٠١٢"
// chinese
console.log(date.toLocaleDateString('zh-Hans-CN'));
// → "2012/12/20"
请注意,NodeJS 只会附带设备的语言环境格式,因此当您为 LocaleDateString 指定参数时,例如:
new Date("1983-March-25").toLocaleDateString('fr-CA', { year: 'numeric', month: '2-digit', day: '2-digit' })
'03/25/1983'
请注意,您希望 'fr-CA' 为您提供 YYYY-MM-DD,但事实并非如此。那是因为它只使用美国语言环境,因为我的节点实例在美国语言环境中是 运行。
Node github 帐户上实际上有一份错误报告描述了问题和解决方案:
https://github.com/nodejs/node/issues/8500
提供的解决方案是安装 full-icu
模块。
日期:.toLocaleDateString('en-US', {day: "numeric"})
完整月份:.toLocaleDateString('en-US', {month: "long"})
简而言之一个月:.toLocaleDateString('en-US', {month: "short"})
全天:.toLocaleDateString('en-US', {day: "long"})
简而言之:.toLocaleDateString('en-US', {day: "short"})
JavaScript 日期 toLocaleString() 此方法使用语言特定格式将日期格式化为字符串。
示例:
Only date :
var n = new Date();
console.log("es-CL: " + n.toLocaleDateString("es-CL"));
// es-CL: 03-09-2021
Date with Time :
var n = new Date();
console.log("es-CL: " + n.toLocaleString("es-CL"));
// es-CL: 03-09-2021 17:56:58
List are here :
ar-SA: ٢٦/١/١٤٤٣ هـ في ٥:٥٦:٥٨ م
bn-BD: ৩/৯/২০২১ ৫:৫৬:৫৮ PM
bn-IN: ৩/৯/২০২১ ৫:৫৬:৫৮ PM
cs-CZ: 3. 9. 2021 17:56:58
da-DK: 3.9.2021 17.56.58
de-AT: 3.9.2021, 17:56:58
de-CH: 3.9.2021, 17:56:58
de-DE: 3.9.2021, 17:56:58
el-GR: 3/9/2021, 5:56:58 μ.μ.
en-AU: 03/09/2021, 5:56:58 pm
en-CA: 2021-09-03, 5:56:58 p.m.
en-GB: 03/09/2021, 17:56:58
en-IE: 3/9/2021, 17:56:58
en-IN: 3/9/2021, 5:56:58 pm
en-NZ: 3/09/2021, 5:56:58 pm
en-US: 9/3/2021, 5:56:58 PM
en-ZA: 2021/09/03, 17:56:58
es-AR: 3/9/2021 17:56:58
es-CL: 03-09-2021 17:56:58
es-CO: 3/9/2021, 5:56:58 p. m.
es-ES: 3/9/2021 17:56:58
es-MX: 3/9/2021 17:56:58
es-US: 3/9/2021 5:56:58 p. m.
fi-FI: 3.9.2021 klo 17.56.58
fr-BE: 03/09/2021, 17:56:58
fr-CA: 2021-09-03, 17 h 56 min 58 s
fr-CH: 03.09.2021, 17:56:58
fr-FR: 03/09/2021, 17:56:58
he-IL: 3.9.2021, 17:56:58
hi-IN: 3/9/2021, 5:56:58 pm
hu-HU: 2021. 09. 03. 17:56:58
id-ID: 3/9/2021 17.56.58
it-CH: 3/9/2021, 17:56:58
it-IT: 3/9/2021, 17:56:58
ja-JP: 2021/9/3 17:56:58
ko-KR: 2021. 9. 3. 오후 5:56:58
nl-BE: 3/9/2021 17:56:58
nl-NL: 3-9-2021 17:56:58
no-NO: 3.9.2021, 17:56:58
pl-PL: 3.09.2021, 17:56:58
pt-BR: 03/09/2021 17:56:58
pt-PT: 03/09/2021, 17:56:58
ro-RO: 03.09.2021, 17:56:58
ru-RU: 03.09.2021, 17:56:58
sk-SK: 3. 9. 2021, 17:56:58
sv-SE: 2021-09-03 17:56:58
ta-IN: 3/9/2021, பிற்பகல் 5:56:58
ta-LK: 3/9/2021, 17:56:58
th-TH: 3/9/2564 17:56:58
tr-TR: 03.09.2021 17:56:58
zh-CN: 2021/9/3 下午5:56:58
zh-HK: 3/9/2021 下午5:56:58
zh-TW: 2021/9/3 下午5:56:58
const options = { year: 'numeric', month: 'numeric', day: 'numeric' }
const new Date(date).toLocaleDateString('en', options)