Javascript 如何将datetime数据帧发送到django模板并使用plotly在js中打印
我有一个数据帧,我想在Django模板中发送它Javascript 如何将datetime数据帧发送到django模板并使用plotly在js中打印,javascript,django,dataframe,datetime-format,python-datetime,Javascript,Django,Dataframe,Datetime Format,Python Datetime,我有一个数据帧,我想在Django模板中发送它 views.py中的伪代码: def graphs(request): df_new = pd.read_excel("/home/cms/cms/static/Sensorik.xlsx") times = df_new.loc[:, df_new.columns[0]].to_json(orient='records') # columns[0] contains datetime values
views.py中的伪代码
:
def graphs(request):
df_new = pd.read_excel("/home/cms/cms/static/Sensorik.xlsx")
times = df_new.loc[:, df_new.columns[0]].to_json(orient='records')
# columns[0] contains datetime values
data_color = df_georgian.loc[:, df_georgian.columns[2]]
color = data_color.to_json(orient='records')
context = {
'times': times,
'data_color': color,
...
}
return render(request, 'graphs/graphs.html', context)
在我的模板中,我获得如下数据:
<script>
var times = {{ times|safe }};
console.log('index: ', typeof(index));
var color = {{ data_color|safe }};
</script>
var times={{times | safe}};
log('index:',typeof(index));
var color={{data_color | safe}};
color
变量完全正常,但是当使用JSON格式时,times
变量从2018-05-29 08:09:00
格式变为类似的格式:
要素:1528108200000
我希望能够基于时间绘制颜色
,以获得带有plotly的线图。i、 e.我想将时间
显示为绘图的x记号
有什么建议吗
1-如何将日期时间数据帧发送到django模板?
或
2-如何将元素:1528108200000
转换为js中的datetime,并将其绘制为x记号?每当您看到一些应该是以大量数字表示的日期或时间,如1528108200000
格式,这意味着它是或类似于UNIX时间戳,即1月1日之后的秒数,在本例中,时间戳的长度表示它是毫秒,而不是秒,因此它不完全是UNIX时间戳,但非常接近
自1970年1月1日以来的毫秒是对象的转换方式,这很有趣,因为这意味着某种转换可能发生在JS端,而不是python端(通常在python端会得到ISO格式或UNIX时间戳)
在任何情况下,在JS端都很容易解决,因为您可以简单地解析数字:
dateObject = new Date(1528108200000);
如果进行解析并将数据作为Date
对象传递给Plotly,Plotly应该能够识别您的日期
一个简单的方法是:
const times = [1528108200000, 1528108200000, 1528108200000]
const parsed = times.map(time => new Date(time))
假设您的times
变量只是这些整数的数组。每当您看到一些应该是以大数字表示的日期或时间,如1528108200000
格式,这意味着它是或类似于UNIX时间戳,即1970年1月1日之后的秒数。在本例中,时间戳的长度表示它是毫秒,而不是秒,因此它不完全是UNIX时间戳,但非常接近
自1970年1月1日以来的毫秒是对象的转换方式,这很有趣,因为这意味着某种转换可能发生在JS端,而不是python端(通常在python端会得到ISO格式或UNIX时间戳)
在任何情况下,在JS端都很容易解决,因为您可以简单地解析数字:
dateObject = new Date(1528108200000);
如果进行解析并将数据作为Date
对象传递给Plotly,Plotly应该能够识别您的日期
一个简单的方法是:
const times = [1528108200000, 1528108200000, 1528108200000]
const parsed = times.map(time => new Date(time))
假设times
变量只是这些整数的数组