首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从我的浏览器/服务器获取时区,以angular2-highcharts格式注入

从我的浏览器/服务器获取时区,以angular2-highcharts格式注入
EN

Stack Overflow用户
提问于 2017-07-19 20:46:49
回答 2查看 11.1K关注 0票数 2

我实际上是使用Highcharts api的timezoneOffset函数手动设置时区的,我目前在gmt+2,所以我将其设置为-2 * 60,但是当我们在10月份更改时间时,我的设置将不再正常工作,所以我决定使用我的浏览器或服务器时间。我知道我们可以从getTimezoneOffset: Function接口开始使用gettimezoneOffset函数。pb是我用typescript和Angular 4设置的,我怎么才能让它变得优雅呢?提前感谢

以下是我使用timezoneOffset的实际工作代码:

代码语言:javascript
复制
 constructor(public userService3: UserService3) {

     const Highcharts = require('highcharts');

    Highcharts.setOptions({
  global: {
    timezoneOffset: -2 * 60
   }
});
           this.options = {
            title : { text : '' },
            chart: {  type: 'area'},
            legend: { enabled: false },
            credits: { enabled: false },
            xAxis: { type: 'datetime',
                    startOnTick: false,
                    endOnTick: false,
                    tickInterval: 36e5 * 2, // two hours
                    },
            yAxis: { min: 0,
              max: 100 },
            plotOptions: {
              series: {
                  color: '#648e59',
                  fillOpacity: 0.8,
                  fillColor: '#648e59',
                  pointInterval: 36e5 * 2 // two hours
                      }
            },
            series: [{
              name: 'Someone1',
              data: [],
            }]
        };
    }
   saveInstance(chartInstance) {
    this.chart = chartInstance;
     console.log(chartInstance);
}

    public ngOnInit () {
    this.dataSubscription = this.userService3.getData().subscribe((data) 
=> {
      this.options.series[0].data = data.data.operating_details;
      console.log(data);
   });
}
    ngOnDestroy() {
      if (this.dataSubscription){
this.dataSubscription.unsubscribe();
}
    }

下面是我的html:

代码语言:javascript
复制
   <chart [options]="options" (load)="saveInstance($event.context)"> 
   </chart>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-19 20:59:51

您可以简单地从客户端获取时区偏移量:

代码语言:javascript
复制
const timeZoneOffset = new Date().getTimezoneOffset();

您将在几分钟内获得UTC的本地差值,然后按您的意愿使用它。根据您的应用程序类型,对于大多数情况,当您的客户端位于不同时区时,这应该是一种比硬编码时区更好的方法。

票数 1
EN

Stack Overflow用户

发布于 2017-07-19 21:18:07

var date =新日期();var timezone = date.getTimezoneOffset();

但我认为你应该从服务器获取时区,因为浏览器根据本地系统给出时区,如果有人更改了它,会给你带来问题。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45191082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档