javascript - 比较来自 PostgreSQL 的 javascript 日期时间和时间戳

标签 javascript sql date datetime timestamp

在 PostgreSQL 数据库中,我在时间戳列中保存了这个值:2013-03-15 08:50:00。 我的目标是从数据库中获取这个日期并检查当前时间是否比数据库中的时间少大约 12 小时。

为此,我想从 new Date() 获取当前时间并将其与数据库中的日期进行比较 - 但由于时间格式不同,这不起作用。

我怎样才能做到这一点并将这些时间转换为相同(可比较)的格式?

最佳答案

var ds='2013-03-15 08:50:00';

没有任何时区信息,您无法真正判断今天是哪一天。 假设您的字符串是 UTC,您可以使用 Date 构造函数 如果您将空格替换为“T”并在末尾添加“Z”:

var ds='2013-03-15 08:50:00';

var day=new Date(ds.replace(' ','T')+'Z');

day.toUTCString()

2013 年 3 月 15 日星期五 08:50:00 GMT

您可以编写一个日期解析函数来解析 ISO 或 sql 格式,

在某些较旧的浏览器上可能需要。

Date.fromISO= function(s){
    var day, tz,
    rx=/^(\d{4}\-\d\d\-\d\d([tT ][\d:\.]*)?)([zZ]|([+\-])(\d\d):(\d\d))?$/,
    p= rx.exec(s) || [];
    if(p[1]){
        day= p[1].split(/\D/);
        for(var i= 0, L= day.length;i<L;i++){
            day[i]= parseInt(day[i], 10) || 0;
        };
        day[1]-= 1;
        day= new Date(Date.UTC.apply(Date, day));
        if(!day.getDate()) return NaN;
            //adjust for time zone offset:
        if(p[5]){
            tz= (parseInt(p[5], 10)*60);
            if(p[6]) tz+= parseInt(p[6], 10);
            if(p[4]== '+') tz*= -1;
            if(tz) day.setUTCMinutes(day.getUTCMinutes()+ tz);
        }
        return day;
    }
    return NaN;
}

然后调用Date.fromISO('2013-03-15 08:50:00');

关于javascript - 比较来自 PostgreSQL 的 javascript 日期时间和时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15396637/

相关文章:

javascript - AngularJS 错误 : Unknown provider: app. configProvider <- app.config

c# - 删除连接表,如何插入一行而不在数据库中查询该行引用的实体?

php - TIMESTAMP 与 DATETIME MySQL

JavaScript 函数和原型(prototype)

javascript - 如何找出/调试将 JavaScript 加载到浏览器中的内容

javascript - 如何从 javascript 对象获取与特定 ID 匹配的项目

c# - UPDATE 语句与 asp.net mvc 5 中的 FOREIGN KEY 约束冲突

SQL - LAG 相当于使用 OVER 子句检索以前的值并存储在当前行中?

javascript - 在哪里可以找到有关在 JavaScript 中格式化日期的文档?

javascript - 我可以获得该向量时间的天数吗?