Moment设置时区

使用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月的某个周末结束。但是,有一些州,如亚利桑那州和夏威夷州,不使用夏令时。)
  • 由服务器对时区进行处理,并下发UTC offset
// 全局时区设置
import moment from "moment-timezone";

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

// 获取当前时间
const currentTime = moment();
console.log(currentTime);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容