在Python中将PostgreSQL时间戳转换为JavaScript时间戳
我有一个Postgre数据库,其中有一个时间戳的列,同时我在Python中有一个REST服务,它会在数据库中执行查询,并把数据返回给JavaScript前端,用来绘制图表,使用的是flot
。
现在我遇到的问题是,flot
可以自动处理JavaScript的时间戳,但我不知道怎么把Postgre的时间戳转换成JavaScript的时间戳(没错,是时间戳,不是日期,如果你不知道怎么做就别编辑了)。我不确定这样做是否是最佳方法(也许转换可以在JavaScript中完成?)。有没有办法做到这一点?
2 个回答
3
你不能通过JSON发送Python或Javascript的“datetime”对象。JSON只接受一些基本的数据类型,比如字符串、整数和浮点数。
我通常的做法是把它当作文本发送,使用Python的datetime.isoformat()
方法,然后在Javascript那边进行解析。
7
在PostgreSQL中,可以使用 date_part 或者 extract 函数来获取一个时间戳。
select date_part('epoch',mydatefield)*1000 from table;
然后你可以直接把这个时间戳发送过去。需要注意的是,epoch
是指从1970年1月1日开始的秒数,而JavaScript需要的是毫秒数,所以要乘以 *1000
。如果你需要把它转换成日期,一旦在JavaScript中接收到这个时间戳,可以通过调用 new Date(timestamp_from_pg)
来转换。
值得注意的是,flot可以直接使用时间戳作为数字,不需要实际创建 Date
对象。