使用Moment Timezone插件进行时区设置
- 安装
npm install moment-timezone --save # npm
yarn add moment-timezone # Yarn
- 使用
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}`;
}
- 当我们需要使整个项目保持时间统一的时候,单独的时区转换就达不到我们想要的效果,可以使用全局设置时区,这样我们只要使用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
- 注意:有一些国家部分地区使用冬令时和夏令时,有一些地区则不使用,这个时候我们就必须和服务器保持同一时区,否则会有时间差。(例如:美国:美国的一些州和地区在夏季使用夏令时,通常在3月或4月的某个周末开始,并在11月的某个周末结束。但是,有一些州,如亚利桑那州和夏威夷州,不使用夏令时。)
- 由服务器对时区进行处理,并下发UTC offset
// 全局时区设置
import moment from "moment-timezone";
// 服务器下发偏移量:offset = +8;
moment.tz.setDefault(offset);
// 获取当前时间
const currentTime = moment();
console.log(currentTime);
网友评论