Moment设置时区

作者: plum_meizi | 来源:发表于2023-07-03 11:11 被阅读0次

    使用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);
    

    相关文章

      网友评论

        本文标题:Moment设置时区

        本文链接:https://www.haomeiwen.com/subject/wcmqudtx.html