作为一个前端开发人员,你是否因时间格式化的问题而感到困扰呢?大多数情况下,我们需要将从后台获取的时间数据进行格式化后展示给用户。在 ES12 中,JavaScript 添加了一些新的时间格式化方法,这让我们能够更简单地格式化时间数据。
常用的时间格式
在介绍 ES12 中的时间格式化方法之前,我们先来了解一下常用的时间格式,因为这些时间格式会影响我们在进行时间格式化时的选择。
yyyy-MM-dd
:年-月-日,例如:2022-03-18。yyyy-MM-dd HH:mm:ss
:年-月-日 时:分:秒,例如:2022-03-18 10:22:30。yyyy-M-d
、yyyy-M-d H:m:s
等非 0 开头的时间格式也是常用的。
ES12 中的时间格式化方法
在 ES12 中,JavaScript 添加了 Intl.DateTimeFormat 和 formatDate 两个方法,让我们更方便地进行时间格式化。
Intl.DateTimeFormat
Intl.DateTimeFormat 是一个全局对象,它提供了一种根据本地化约定格式化日期和时间的方法。
该函数接受两个参数:
locale
:用于指定格式化的语言环境,默认为当前环境的语言环境。options
:一个可选的对象,用于配置格式化选项,例如日期格式(year、month、day)、时间格式(hour、minute、second)、时区(timeZoneName)、日历和数字系统等。
下面是一个简单的例子:
const date = new Date(); const formatter = new Intl.DateTimeFormat('zh-CN', { year: 'numeric', month: '2-digit', day: 'numeric' }); console.log(formatter.format(date)); // 2022/3/18
在上面的代码中,我们使用了 Intl.DateTimeFormat
格式化日期并输出结果。在 options
参数中我们指定了语言环境为 zh-CN
,并设置了 year
、month
和 day
三个属性来指定日期的格式化方式。
formatDate
除了 Intl.DateTimeFormat
外,ES12 还添加了一个名为 formatDate
的实例方法,该方法用于格式化日期。
在 Intl.DateTimeFormat
格式化日期的基础上,formatDate
可以使用更优雅的方式来格式化日期。下面是一个例子:
const date = new Date(); const formatter = new Intl.DateTimeFormat('zh-CN', { year: 'numeric', month: '2-digit', day: 'numeric' }); console.log(formatter.format(date)); // 2022/3/18 console.log(date.formatDate({ weekday: 'short', month: 'short', day: 'numeric' })); // Fri, Mar 18
在上面的代码中,我们使用 Intl.DateTimeFormat
对日期进行了格式化,并且在 formatDate
中指定了要使用的格式。在这个例子中,我们使用了 weekday
、month
和 day
三个参数来格式化日期,并使用了一个短格式(short
)。
总结
在 ES12 中,JavaScript 添加了 Intl.DateTimeFormat
和 formatDate
两个方法,让我们可以更轻松地对时间进行格式化。
在实际应用中,我们可以根据需要选择适合的方法和格式化选项来对时间进行处理。这不仅可以提高代码的可读性,还可以让我们的用户更好地理解时间信息。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65452e7b7d4982a6ebef4075