toLocaleDateString() 未返回 dd/mm/yyyy 格式
Posted
技术标签:
【中文标题】toLocaleDateString() 未返回 dd/mm/yyyy 格式【英文标题】:toLocaleDateString() is not returning dd/mm/yyyy format 【发布时间】:2014-05-08 07:11:12 【问题描述】:您好,我使用 toLocaleDateString()
显示来自 rss 提要的日期,但它没有在所有浏览器中显示 dd/mm/yyyy
格式,safari 和 mozila 它显示不同,但 chrome 显示正确。
【问题讨论】:
这很奇怪。几周前 toLocaleDateString() 仍然给我 dd/mm/yyy 格式,但从一两周前开始,它开始返回这种字符串“Saturday, April 04, 2015”。 .toLocaleDateString() Not Working in Firefox的可能重复 【参考方案1】:toLocaleDateString
旨在提供一种人类可读的格式,根据用户自己计算机的规则。例如,如果我的计算机设置为法语,它可能包含法语的日期名称。
toLocaleDateString
不是获取所需格式的可靠方法。而是这样做:
var dateobj = new Date();
function pad(n) return n < 10 ? "0"+n : n;
var result = pad(dateobj.getDate())+"/"+pad(dateobj.getMonth()+1)+"/"+dateobj.getFullYear();
【讨论】:
或[pad(dateobj.getDate()), pad(dateobj.getMonth()+1), dateobj.getFullYear()].join('/')
【参考方案2】:
我一直在寻找这个问题的答案,但上面的答案并没有给出使用toLocaleDateString()
将日期转换为dd/mm/yyyy
的答案。
按照docs toLocaleDateString()
将日期转换为具有日期部分的语言敏感表示的字符串。该方法接受两个参数dateObj.toLocaleDateString( [locales][, options])
,描述如下:
locales:这个参数是一个包含一个或多个语言或区域标签的区域字符串数组。注意它是一个可选参数。如果你想在你的语言中使用特定格式的语言然后应用程序在语言环境参数中指定该语言。一些参数是:
en-US : 美国英语使用月-日-年顺序,即 07/17/2020 zh-CN : 英式英语使用日-月-年顺序,即 17/07/2020 ko-KR : 韩语使用年月日顺序,即 2020。 07. 17.options:它也是一个可选参数,包含指定比较选项的属性。一些属性是localeMatcher、timeZone、weekday、year、month、day、hour、minute、second等。 p>
所以在这里使用它可以将日期转换为dd/mm/yyyy
格式:
let dateFormat=new Date().toLocaleDateString('en-GB',
month: '2-digit',day: '2-digit',year: 'numeric')
console.log(dateFormat)
【讨论】:
【参考方案3】:这已经回答过了:
根据 Mozilla 文档,格式可能因用户的位置和计算机设置而异。
https://developer.mozilla.org/en/javascript/Reference/Global_Objects/Date/toLocaleDateString
具体格式取决于平台、区域设置和用户设置。
.toLocaleDateString() Not Working in Firefox
【讨论】:
另一种方法是使用new Date(x).toDateString()
【参考方案4】:
在 Chrome 中,您需要转到高级>语言设置。然后下拉顶部的“语言”部分,您可能会看到一些英语变体。
确保为您想要的英语版本选择“以这种语言显示 Google Chrome” - 无论它是否位于列表顶部。
【讨论】:
以上是关于toLocaleDateString() 未返回 dd/mm/yyyy 格式的主要内容,如果未能解决你的问题,请参考以下文章