📅  最后修改于: 2023-12-03 15:38:02.472000             🧑  作者: Mango
在编写 Web 应用程序时,经常需要将日期信息从后端传递到前端。而常用的数据格式是 JSON,那么如何将 JSON 字符串中的日期信息转换成 JavaScript 的 Date 对象呢?下面我们就来介绍一下这个过程。
在 JSON 中表示日期信息的格式有多种,以下是常见的几种:
ISO 8601 是一个时间和日期的国际标准。在 JSON 中日期可使用以下格式:
其中,YYYY 表示年份,MM 表示月份,DD 表示日期,HH 表示小时,mm 表示分钟,ss 表示秒钟,sss 表示毫秒,Z 表示时区。
Unix 时间戳是从 1970 年 1 月 1 日 0 时 0 分 0 秒 UTC 开始所经过的秒数。在 JSON 中如果用 Unix 时间戳表示日期,则只需要将日期信息转换成对应的秒数即可。
JavaScript 内置了 Date 对象,可以将日期字符串转换成对应的 Date 对象。以下是示例代码:
const jsonDate = "2022-12-31T23:59:59Z";
const date = new Date(jsonDate);
console.log(date);
输出结果为:
Sat Dec 31 2022 23:59:59 GMT+0800 (中国标准时间)
可以看到,Date 对象已经将 JSON 中的日期字符串转换成了对应的日期对象。
除了使用 Date 方法外,我们还可以使用第三方库来实现日期的转换。比较常用的有 moment.js、date-fns 等等。以下是示例代码:
const jsonDate = "2022-12-31T23:59:59Z";
const date = moment(jsonDate).toDate();
console.log(date);
输出结果为:
Sat Dec 31 2022 23:59:59 GMT+0800 (中国标准时间)
import { parseISO } from 'date-fns';
const jsonDate = "2022-12-31T23:59:59Z";
const date = parseISO(jsonDate);
console.log(date);
输出结果也为:
Sat Dec 31 2022 23:59:59 GMT+0800 (中国标准时间)
以上是在 JavaScript 中将 JSON 中的日期信息转换成 Date 对象的两种方法。使用哪种方法取决于个人需求和偏好,但基于上文提到的常见日期格式,使用内置的 Date 对象可能更为简单快捷。