如何将 Date
对象格式化为字符串?
原文由 leora 发布,翻译遵循 CC BY-SA 4.0 许可协议
如何将 Date
对象格式化为字符串?
原文由 leora 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您需要的格式控制比当前接受的答案略少, Date#toLocaleDateString
可用于创建标准的特定于语言环境的渲染。 locale
和 options
参数让应用程序指定应使用其格式约定的语言,并允许对呈现进行一些自定义。
当天的代表。
可能的值为“数字”、“2 位数字”。 2. 工作日:
工作日的表示。
可能的值是“窄”、“短”、“长”。 3. 年:
年的代表。
可能的值为“数字”、“2 位数字”。 4. 月:
月的表示。
可能的值是“数字”、“2 位数字”、“窄”、“短”、“长”。 5. 小时:
小时的表示。
可能的值为“数字”、“2 位数字”。 6. minute:分钟 的表示。
可能的值为“数字”、“2 位数字”。 7. 第二:
第二个代表。
可能的值为“数字”,2 位数字。
所有这些键都是可选的。您可以根据您的要求更改选项值的数量,这也将反映每个日期时间项的存在。
注意:如果您只想配置内容选项,但仍使用当前语言环境, null
作为第一个参数传递将导致错误。使用 undefined
代替。
您可以使用更多语言选项。
var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
var today = new Date();
console.log(today.toLocaleDateString("en-US")); // 9/17/2016
console.log(today.toLocaleDateString("en-US", options)); // Saturday, September 17, 2016
console.log(today.toLocaleDateString("hi-IN", options)); // शनिवार, 17 सितंबर 2016
您也可以使用 toLocaleString()
方法达到同样的目的。唯一的区别是这个函数提供了你不传递任何选项的时间。
// Example
9/17/2016, 1:21:34 PM
原文由 ajeet kanojia 发布,翻译遵循 CC BY-SA 4.0 许可协议
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
对于自定义分隔的日期格式,您必须提取日期(或时间)
DateTimeFormat
对象中的组件(它是ECMAScript Internationalization API ),然后手动创建一个字符串
用你想要的分隔符。
为此,您可以使用
DateTimeFormat#formatToParts
。你可以解构数组,但这并不理想,因为数组输出取决于
语言环境:
最好将格式数组映射到结果字符串:
您还可以使用一个一个地拉出
DateTimeFormat
的各个部分DateTimeFormat#format
,但请注意,使用此方法时,截至 3 月2020 年,ECMAScript 实现中存在 一个错误,涉及
分钟和秒的前导零(这个错误被方法规避了
以上)。
在处理日期和时间时,通常值得使用库(例如。
moment.js , luxon ) 因为许多隐藏的复杂性
场地。
请注意,上述解决方案中使用的 ECMAScript 国际化 API
IE10 不支持(2 月全球浏览器市场份额 0.03% )
2020)。