首页 > 解决方案 > 将(来自 postgresql 的日期和时间戳)转换为 javascript 时间

问题描述

我在 PostgreSQL 表中有两列(开始日期(日期格式)和取消日期(时间戳格式))。一个是日期格式,另一个是时间戳格式。我想得到天数中两个值之间的差异。我正在用javascript发送数据。

如何计算javascript中的天数差异?例如,一个值为 2010-10-14。第二个值是 2010-10-16 04:05:06。差异将是 3 天。

我的问题是我在 API 响应中以 PostgreSQL(日期和时间戳)格式获取这两个值。一个简单的区别在javascript中不起作用(start_date-cancellation_date)。

标签: javascriptpostgresqldatetimetimestampepoch

解决方案


Javascript 日期对象在转换为毫秒之前无法进行比较。

var now = new Date(); // create new date - today
var then = new Date(now.getDate()+5); // create new date that's now + 5 days (bad variable name, sry)
var nowAdj = now.getTime(); // now adjusted to milliseconds
var thenAdj = then.getTime(); // then adjusted to milliseconds
var differenceInDays = Math.round((thenAdj - nowAdj)/(1000*60*60*24)) // Subtract now from then and multiply the results by the magic formula to return milliseconds to days.

编辑:清理了一下,“then”仍然是一个可怕的变量名;)


推荐阅读