我正在尝试使用Django 2.x在高图中实现时间序列
{% for date in timeseries.all %}
{{ date }}
{% if not forloop.last %},
{% endif %}
{% endfor %}
这将提供以下输出:
{'flotation_date': datetime.datetime(2002, 2, 2, 0, 0, tzinfo=<UTC>)} ,
{'flotation_date': datetime.datetime(2002, 2, 1, 0, 0, tzinfo=<UTC>)} ,
{'flotation_date': datetime.datetime(2002, 2, 3, 0, 0, tzinfo=<UTC>)} ,
{'flotation_date': datetime.datetime(2002, 2, 4, 0, 0, tzinfo=<UTC>)}
Highcharts期望:
1167609600000,
0.7537
],
[
1167696000000,
0.7537
],
[
1167782400000,
0.7559
],
[
1167868800000,
0.7631
],
因此,显而易见的问题是,如何将字典转换为期望的数组?
n.b。此时已省略时间,稍后将添加。
在我看来,数据是这样返回的,我希望这是进行格式化的位置。
timeseries = Flotation.objects.values('flotation_date')
我找到了一种简单的方法。如果您的日期是日期时间对象,请执行以下操作。
yourdate.replace(tzinfo=timezone.utc).timestamp() * 1000
这将为您提供时间戳。 请注意,我是在django视图中而不是在模板中创建图表对象。但是您可以编写一个标记以在模板中使用,以EPOCH秒为单位返回日期。