📜  dayjs 时区 - Javascript (1)

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

Dayjs 时区 - Javascript

介绍

Dayjs是一个轻量级的JavaScript日期库,可以格式化、解析和操作日期。Dayjs的API与Moment.js非常相似,但它只有2kB,比Moment.js更小,并且可以使用插件。

Dayjs支持时区设置,使其成为一个更具灵活性的日期库。本文将重点介绍Dayjs的时区功能。

安装

Dayjs可以使用npm安装:

npm install dayjs --save

也可以使用CDN链接:

<script src="https://cdn.jsdelivr.net/npm/dayjs"></script>
时区设置

如果你想设置Dayjs的默认时区,可以使用dayjs.extend()dayjs.utc()方法。例如,如果你要将时区设置为America/New_York,可以使用以下方法:

const dayjs = require('dayjs');
const utc = require('dayjs/plugin/utc');
const timezone = require('dayjs/plugin/timezone'); // 导入时区插件

dayjs.extend(utc);
dayjs.extend(timezone);

dayjs.tz.setDefault('America/New_York');

这将设置America/New_York为默认时区。你可以在项目中的任何地方使用Dayjs时,都会按照这个默认时区来创建日期对象。

当然,你也可以在单个日期对象上设置时区。例如:

const date = dayjs('2022-12-31T23:59:59.000Z').tz('America/New_York');

这将创建一个本来是UTC时间的日期对象,但当你使用.tz()方法设置时区时,它会自动根据时区调整时间。

时区转换

当你有不同时区的日期对象时,你可能需要将它们转换为相同的时区,方便操作。可以使用.tz().utc()方法进行转换。

const date = dayjs('2022-12-31T23:59:59.000Z').tz('America/New_York');
const utcDate = date.utc(); // 将美东时间转换为UTC时间

这样一来,utcDate将是2023-01-01T04:59:59.000Z,即UTC日期对象。

时区显示

在某些情况下,你可能需要在页面上显示不同时区的时间。你可以使用.format()方法来格式化日期字符串,并使用.tz()方法来指定时区。

const date = dayjs('2022-12-31T23:59:59.000Z').tz('America/New_York');
const formattedDate = date.format('YYYY-MM-DD HH:mm:ss z'); // 格式化日期字符串

这里使用了z标记来显示时区信息。例如,美东时间的格式化结果可能是2022-12-31 18:59:59 EST

结论

Dayjs是一个非常强大的日期库,支持时区设置和转换。本文介绍了Dayjs时区设置、转换和显示的方法,希望对你有所帮助。如果你需要更多的Dayjs指南,请查阅Dayjs官方文档。