Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将datetime数据帧发送到django模板并使用plotly在js中打印_Javascript_Django_Dataframe_Datetime Format_Python Datetime - Fatal编程技术网

Javascript 如何将datetime数据帧发送到django模板并使用plotly在js中打印

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

我有一个数据帧,我想在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
    
    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
变量只是这些整数的数组