比较javascript日期时间和时间戳从PostgreSQL



在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}-dd-dd([tT ][d:.]*)?)([zZ]|([+-])(dd):(dd))?$/,
    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) ,

相关内容

  • 没有找到相关文章

最新更新