javascript Date.toLocaleDateString()很傻。
我需要的是一个允许我根据喜好简化日期的功能。
如果有一个函数可以读取浏览器日期格式(复数)并使用一个可选参数告诉它使用哪种格式,那将是很好的。
我会解释: “MM / DD / YYYY”非常适合美国和任何愿意忍受他们/我们的人。 “DD / MM / YYYY”是对简短日期格式感兴趣的人最常用的格式。 “Weekday,Month DayOfMonth,Year”仅在您需要超长且依赖于语言的输出时才有用。
我可以用这个:
var s = "/";
if(locale=='us')
var dateString = Date.getDate()+s+Date.getDay()+s+Date.getFullYear();
else
var dateString = Date.getDay()+s+Date.getDate()+s+Date.getFullYear();
但我正在寻找一种更优雅的解决方案,它允许我存储日期掩码或格式字符串,以便人们可以根据自己的喜好改变日期显示的方式。 (即使是超长语言依赖的,如果他们足够喜欢它。)
我应该重新设计Date.toString()方法的原型来解释参数吗?还有更好的方法吗?
答案 0 :(得分:2)
我遇到了一个非常强大的库来处理日期和通用格式: <删除> http://blog.stevenlevithan.com/archives/date-time-format 德尔> (错误的链接) http://jawe.net/wiki/dev/jsdateformat/home
非常强大且可配置。 (它支持我需要的java风格格式,例如“MEDIUM”日期格式)
时刻似乎很有用并且功能已满(只有中等格式):https://github.com/timrwood/moment
答案 1 :(得分:2)
您可以使用DateTimeFormat Api。
var now = new Date(0)
console.log(new Intl.DateTimeFormat('en-US').format(now)); //12/31/1969
console.log(new Intl.DateTimeFormat('en-GB').format(now)); //31/12/1969
有关Mozilla文档的信息,请参阅此链接: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat
优点:
PS:如果您不关心捆绑包大小,并且您想要更“用户友好”并且易于使用的内容,请参阅moment.js或luxon,它们都是日期操作的绝佳库。< / p>