Vega中epoch时间戳转Date对象及日期加法操作相关问题咨询
你只需要将计算得到的毫秒时间戳作为参数传入toDate()函数即可得到Date类型的结果,修改后的transform配置如下:
'transform': [ { 'type': 'formula', 'expr': 'toDate(time(datum.date) + (1000*60*60*24*datum.days))', 'as': 'x' } ]
如果你之前调用toDate()得到的是时间戳,大概率是调用时传参不符合预期,只要传入合法的毫秒级时间戳作为入参,toDate()会直接返回标准JS Date对象。
另外更推荐使用Vega内置的timeOffset函数实现日期偏移,不需要手动计算毫秒数,还能自动处理时区、夏令时等特殊情况,写法更简洁可靠:
'transform': [ { 'type': 'formula', 'expr': 'timeOffset(\'day\', datum.date, datum.days)', 'as': 'x' } ]
补充两个使用说明:
- 如果你的
x字段后续仅用于时间轴类的可视化渲染,Vega的time类型比例尺本身支持直接读取毫秒时间戳,无需额外转换也能正常工作 - 如果你需要对
x字段做进一步的日期运算、提取年月日等操作,就必须转换为Date类型后再操作
内容的提问来源于stack exchange,提问作者emmby
相关产品推荐
相关产品推荐

