📌  相关文章
📜  在 javascript 中将新的日期标准转换为 yyy-mm-dd 格式 (1)

📅  最后修改于: 2023-12-03 15:07:40.882000             🧑  作者: Mango

在 javascript 中将新的日期标准转换为 yyy-mm-dd 格式

在 Javascript 中,有一种新的日期标准叫做“ISO 8601”。它使用了一个统一的格式来表示日期和时间:YYYY-MM-DDTHH:MM:SS.sssZ(其中Z表示UTC时间)。但是,有时我们需要将这种格式转换成另一种格式,比如 yyy-mm-dd。

方法一:使用正则表达式

我们可以使用正则表达式来提取出日期部分,并将其格式化成 yyy-mm-dd。以下是代码示例:

const isoDatetimeString = '2021-12-31T23:59:59.999Z';

const regexResult = isoDatetimeString.match(/^(\d{4})-(\d{2})-(\d{2})/);
const year = regexResult[1];
const month = regexResult[2];
const day = regexResult[3];

const yyyMmDdString = `${year}-${month}-${day}`;
console.log(yyyMmDdString); // 输出:2021-12-31
方法二:使用 Date 对象

另外一种方法是使用 Javascript 内置的 Date 对象。我们可以先将 ISO 8601 格式的字符串转换成 Date 对象,然后从中提取出年月日部分,并将其格式化成 yyy-mm-dd。以下是代码示例:

const isoDatetimeString = '2021-12-31T23:59:59.999Z';

const date = new Date(isoDatetimeString);
const year = date.getFullYear();
const month = date.getMonth() + 1; // 月份从 0 开始,所以要加 1
const day = date.getDate();

const yyyMmDdString = `${year}-${month.toString().padStart(2, '0')}-${day.toString().padStart(2, '0')}`;
console.log(yyyMmDdString); // 输出:2021-12-31

注意,由于月份和日期可能只有一位,我们在转换成字符串时,需要使用 padStart() 方法在其前面添加一位 0。

以上是两种常见的方法,你可以根据具体情况选择不同的方法进行日期格式转换。