antvis/G2

[v5 & v4] TypeError: Invalid Time: 2022-12-07 00 in time scale! #4454

Valar103769 posted onGitHub

v4 或者v5 有提供用户添入时间格式的地方吗? 目前只看到一个mask,用来format的 对于 2022-12-07 00 这种日期, 为了降低使用复杂度, 能不能内部只处理 new Date的日期, 对于字符串类型的日期, 提供地方让我们自己传入对应的format, 即dayjs之类的库第二个参数, dayjs 这个参数可缺省, 如果缺省之后你们处理不了, 就把format必填

dayjs('2022-12-07 00').isValid() // true 
dayjs('2022-12-07 00').format('YYYY-MM-DD HH') // 2022-12-07 00
dayjs('2022-12-07 00').toDate() // Wed Dec 07 2022 00:00:00 GMT+0800 (中国标准时间)

貌似fecha 直接操作date对象并不是很高级, 要是我的话, 会考虑迁移到dayjs 降低复杂度


目前只做到传入 Date 类型的日期,这个是 JavaScript 标准, 不会变化。

至于传入 format string 来做自动解析,目前没有办法内置,如果内置就需要找到一个日期库,这个日期库是否和 JavaScript 标准统一,业务数据的后端语言标准是不是符合 JavaScript。

比如 dayjs、fecha、moment 对于日期 format 格式就是少许的不一样,内置一种就是对使用另外一个日期库的开发者的不友好。

所以当前暂时仅仅只会让开发者外置自己处理日期:

  .encode('date', dayjs(d, format));

等 5.0 正式版本发布之后,再考虑是否内置,以及内置的 api 是怎么样的,但是目前粗略判断是不太可能提供的。可以关注下这个讨论帖子

posted by hustcc over 2 years ago

一旦内置 date format 模板,意味着除了 date 之外,我们还需要考虑数字在不同语言环境下的百分比,单位等等,永远都处理不完。

到时候界定是否内置就是看这个数据格式是不是常用,但是其实没有办法定义常用和不常用。

posted by hustcc over 2 years ago

Fund this Issue

$0.00
Funded

Pull requests