New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

echarts 3.5.1 的x轴的时间label显示问题 #5396

Closed
blessbygod opened this Issue Mar 30, 2017 · 3 comments

Comments

Projects
None yet
4 participants
@blessbygod

One-line summary [问题简述]

xAxis的type为time的时候,传入UTC时间,直接显示UTC,而没有转为本地时间

Version & Environment [版本及环境]

  • ECharts version [ECharts 版本]: 3.5.1
  • Browser version [浏览器类型和版本]: chrome 55
  • OS Version [操作系统类型和版本]: mac os

Expected behaviour [期望结果]

显示本地化时间

Other comments [其他信息]

截图1:
http://bos.nj.bpc.baidu.com/v1/agroup/b84b07e23f5719e02038153b3b73a78783e4d8c1
截图2: http://bos.nj.bpc.baidu.com/v1/agroup/5d7b9ffe02804d3cd8194adabcb1f0a845fbdaca

@100pah

This comment has been minimized.

Show comment
Hide comment
@100pah

100pah Mar 30, 2017

Member

确实是改过。现在的时间输入规则:

http://echarts.baidu.com/option.html#series-line.data

当某维度对应于时间轴(type 为 'time')的时候,值可以为:

  • 一个时间戳,如 1484141700832,表示 UTC 时间。
  • 或者字符串形式的时间描述:
    • ISO 8601 的子集,只包含这些形式(这几种格式,除非指明时区,否则均表示 UTC 时间):
      • 部分年月日时间: '2012-03', '2012-03-01', '2012-03-01 05', '2012-03-01 05:06'.
    • 使用 'T' 或空格分割: '2012-03-01T12:22:33.123', '2012-03-01 12:22:33.123'.
      • 时区设定: '2012-03-01T12:22:33Z', '2012-03-01T12:22:33+8000', '2012-03-01T12:22:33-05:00'.
    • 其他的时间字符串,包括: '2012', '2012-3-1', '2012/3/1', '2012/03/01', '2009/6/12 2:00', '2009/6/12 2:05:08', '2009/6/12 2:05:08.123'
  • 或者用户自行初始化的 Date 实例:
    • 注意,用户自行初始化 Date 实例的时候,浏览器的行为有差异,不同字符串的表示也不同。
    • 例如:在 chrome 中,new Date('2012-01-01') 表示 UTC 时间的 2012 年 1 月 1 日,而 new Date('2012-1-1') 和 new Date('2012/01/01') 表示本地时间的 2012 年 1 月 1 日。在 safari 中,不支持 new Date('2012-1-1') 这种表示方法。
    • 所以,使用 new Date(dataString) 时,可使用第三方库解析,或者使用 echarts.number.parseDate,或者参见 这里。

比如,输入的是 2017-03-29 23:58:00,内部虽然会按照 UTC 理解,而显示出来还是 2017-03-29 23:58:00,不会改变。

而输入UTC,显示 UTC 或 本地时间,是可以考虑用个配置项来开关决定。

对于你的例子,先可以直接:

let point = {
    name: key,
    value: [
        // 转成本地时间
        echarts.format.formatTime('yyyy-MM-dd hh:mm:ss', item.create_on, true), 
        value, 
        ...
    ]
};
Member

100pah commented Mar 30, 2017

确实是改过。现在的时间输入规则:

http://echarts.baidu.com/option.html#series-line.data

当某维度对应于时间轴(type 为 'time')的时候,值可以为:

  • 一个时间戳,如 1484141700832,表示 UTC 时间。
  • 或者字符串形式的时间描述:
    • ISO 8601 的子集,只包含这些形式(这几种格式,除非指明时区,否则均表示 UTC 时间):
      • 部分年月日时间: '2012-03', '2012-03-01', '2012-03-01 05', '2012-03-01 05:06'.
    • 使用 'T' 或空格分割: '2012-03-01T12:22:33.123', '2012-03-01 12:22:33.123'.
      • 时区设定: '2012-03-01T12:22:33Z', '2012-03-01T12:22:33+8000', '2012-03-01T12:22:33-05:00'.
    • 其他的时间字符串,包括: '2012', '2012-3-1', '2012/3/1', '2012/03/01', '2009/6/12 2:00', '2009/6/12 2:05:08', '2009/6/12 2:05:08.123'
  • 或者用户自行初始化的 Date 实例:
    • 注意,用户自行初始化 Date 实例的时候,浏览器的行为有差异,不同字符串的表示也不同。
    • 例如:在 chrome 中,new Date('2012-01-01') 表示 UTC 时间的 2012 年 1 月 1 日,而 new Date('2012-1-1') 和 new Date('2012/01/01') 表示本地时间的 2012 年 1 月 1 日。在 safari 中,不支持 new Date('2012-1-1') 这种表示方法。
    • 所以,使用 new Date(dataString) 时,可使用第三方库解析,或者使用 echarts.number.parseDate,或者参见 这里。

比如,输入的是 2017-03-29 23:58:00,内部虽然会按照 UTC 理解,而显示出来还是 2017-03-29 23:58:00,不会改变。

而输入UTC,显示 UTC 或 本地时间,是可以考虑用个配置项来开关决定。

对于你的例子,先可以直接:

let point = {
    name: key,
    value: [
        // 转成本地时间
        echarts.format.formatTime('yyyy-MM-dd hh:mm:ss', item.create_on, true), 
        value, 
        ...
    ]
};

@pissang pissang added the question label Mar 30, 2017

@blessbygod

This comment has been minimized.

Show comment
Hide comment

@100pah 100pah closed this in 2a669a2 Apr 4, 2017

@bluesh

This comment has been minimized.

Show comment
Hide comment
@bluesh

bluesh Aug 14, 2017

使用moment也不行

bluesh commented Aug 14, 2017

使用moment也不行

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment