web前端技术分享

Moment设置时区

2023-07-03  本文已影响0人  plum_meizi

使用Moment Timezone插件进行时区设置

  1. 安装
npm install moment-timezone --save   # npm
yarn add moment-timezone             # Yarn
  1. 使用
import moment from 'moment-timezone';

private static area = 'Asia/Shanghai';
// 把时间戳转换成年月日
public static formateTime(time: number) {
    const date = moment.tz(time, this.area);
    const year = date.get('year');
    const month = this.lingFix(date.get('month') + 1);
    const day = this.lingFix(date.get('date'));
    return `${year}/${month}/${day}`;
}
  1. 当我们需要使整个项目保持时间统一的时候,单独的时区转换就达不到我们想要的效果,可以使用全局设置时区,这样我们只要使用moment,得到的就是同一个时区的时间
// 全局时区设置
import moment from "moment-timezone";

// 设置默认时区为 'Asia/Shanghai'
moment.tz.setDefault('Asia/Shanghai');

// 获取当前时间
const currentTime = moment();
console.log(currentTime);

tz数据库时区列表:en.wikipedia.org/wiki/List_of_tz_database_time_zones

  1. 注意:有一些国家部分地区使用冬令时和夏令时,有一些地区则不使用,这个时候我们就必须和服务器保持同一时区,否则会有时间差。(例如:美国:美国的一些州和地区在夏季使用夏令时,通常在3月或4月的某个周末开始,并在11月的某个周末结束。但是,有一些州,如亚利桑那州和夏威夷州,不使用夏令时。)
// 全局时区设置
import moment from "moment-timezone";

// 服务器下发偏移量:offset = +8;
moment.tz.setDefault(offset);

// 获取当前时间
const currentTime = moment();
console.log(currentTime);
上一篇下一篇

猜你喜欢

热点阅读