关于js中的toLocaleDateString()方法

toLocaleDateString()方法是JavaScript Date对象的一个内建方法,它将日期转换为符合特定地区习惯的字符串格式。

基本用法:

如果没有传入任何参数,toLocaleDateString()会根据浏览器的默认语言环境返回一个日期字符串。

例如:

let date = new Date();
console.log(date.toLocaleDateString()); // 输出形如 "8/25/2023" 的日期,具体格式会根据你的语言环境设置有所不同

参数:

toLocaleDateString()方法可以接受两个参数:localesoptions

  1. locales参数:一个字符串或字符串数组,表示要使用的语言环境。这个参数使用BCP 47语言标签。例如,英语(美国)的标签为"en-US",而中文(中国)的标签为"zh-CN"。

  2. options参数:一个对象,用于定制日期和时间的格式。这个对象可以包含以下属性:

  • era: 'narrow', 'short', 'long'
  • year: 'numeric', '2-digit'
  • month: 'numeric', '2-digit', 'narrow', 'short', 'long'
  • day: 'numeric', '2-digit'
  • weekday: 'narrow', 'short', 'long'
  • hour: 'numeric', '2-digit'
  • minute: 'numeric', '2-digit'
  • second: 'numeric', '2-digit'
  • timeZoneName: 'short', 'long'

其中,'numeric'表示用数字表示,'2-digit'表示用至少两位数字表示。对于'month'和'weekday',还可以选择'narrow'(最短)、'short'(短)或'long'(长)的文本格式。

例如,如果你想要一个完整的日期字符串(包括星期、月、日和年),你可以这样做:

let date = new Date();
let options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
console.log(date.toLocaleDateString("en-US", options)); // 输出 "Thursday, August 25, 2023"

在这个例子中,我们创建了一个当前日期的Date对象,然后使用toLocaleDateString()将其转换为美国英语的日期字符串,格式为"星期,月份 日,年"。

注意:toLocaleDateString()的输出可能因浏览器和浏览器版本的不同而略有差异,因为不同的浏览器可能对日期和时间的格式有不同的实现。

使用案例

这里有一些使用toLocaleDateString()的例子,展示了如何使用不同的localesoptions参数来改变日期格式:
例子1:使用美国的日期格式

let date = new Date();
let formattedDate = date.toLocaleDateString("en-US"); // "MM/DD/YYYY" 格式
console.log(formattedDate); // 输出 "8/25/2023",假设当前日期是2023年8月25日

例子2:使用英国的日期格式

let date = new Date();
let formattedDate = date.toLocaleDateString("en-GB"); // "DD/MM/YYYY" 格式
console.log(formattedDate); // 输出 "25/08/2023",假设当前日期是2023年8月25日

例子3:使用长格式的日期

let date = new Date();
let options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
let formattedDate = date.toLocaleDateString("en-US", options);
console.log(formattedDate); // 输出 "Friday, August 25, 2023",假设当前日期是2023年8月25日

例子4:使用年和月

let date = new Date();
let options = { year: 'numeric', month: 'long' };
let formattedDate = date.toLocaleDateString("en-US", options);
console.log(formattedDate); // 输出 "August 2023",假设当前日期是2023年8月

例子5:使用日和星期

let date = new Date();
let options = { weekday: 'long', day: 'numeric' };
let formattedDate = date.toLocaleDateString("en-US", options);
console.log(formattedDate); // 输出 "Friday, 25",假设当前日期是8月25日,星期五

例子6:使用指定的ISO 8601格式的日期时间字符串

这个日期是一个ISO 8601格式的日期时间字符串,这是一种国际标准的日期和时间表示方法。下面是这个日期时间字符串的各个部分的含义:

  • 2004-05-03:这是日期部分,表示2004年5月3日。
  • T:这是一个分隔符,用来分隔日期和时间部分。
  • 17:30:08:这是时间部分,表示17时30分08秒(24小时制)。
  • +08:00:这是时区部分,表示这个日期时间是相对于UTC+8时区的。
    所以,这个日期时间字符串表示的是2004年5月3日,UTC+8时区的下午5点30分08秒。
const event = new Date('2004-05-03T17:30:08+08:00');
const options = { year: 'numeric', month: 'long', day: 'numeric', hour:'numeric',minute: 'numeric' }
console.log(event.toLocaleDateString('zh-cn', options)); //输出:2004年5月3日 17:30

以上每个例子都展示了如何使用不同的localesoptions参数来定制toLocaleDateString()的输出。你可以根据需要混合和匹配这些参数来创建你需要的日期格式。

posted @ 2023-08-25 14:46  莫颀  阅读(4060)  评论(0编辑  收藏  举报