Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.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 将时区偏移应用于js代码_Javascript_Date_Time_Utc_Timezone Offset - Fatal编程技术网

Javascript 将时区偏移应用于js代码

Javascript 将时区偏移应用于js代码,javascript,date,time,utc,timezone-offset,Javascript,Date,Time,Utc,Timezone Offset,我试图将当前时间与数据库中的某些时间字符串变量进行比较 我有下面的代码工作,但我的服务器上的时间改变了,现在它不再工作 var d = new Date(); var day = d.getDate(); if ((day.toString()).length == 1){ day='0'+day; } var month = d.getMonth()+1; if ((month.toString()).length == 1){ month='0'+month; } var

我试图将当前时间与数据库中的某些时间字符串变量进行比较

我有下面的代码工作,但我的服务器上的时间改变了,现在它不再工作

var d = new Date();
var day = d.getDate();
if ((day.toString()).length == 1){
    day='0'+day;
}
var month = d.getMonth()+1;
if ((month.toString()).length == 1){
    month='0'+month;
}


var mins = d.getMinutes()+100;
console.log("mins is " + mins);
var timeVar = (d.getHours() * 100) + mins;

//concatenated string version of the var
var currtime = year+month+day+timeVar;
我知道如果我调用d.getTimezoneOffset(),我会得到-240,这正是我的问题,我有4个小时的休息时间。但是我不能以正确的方式将该值应用到我的代码中

现在,currTime的变量返回:

20150707242但我需要它返回201507072242

谢谢你的帮助

更新

我正要使用以下方法获得正确的timeVar:

var d2 = new Date(new Date().getTime() + (d.getTimezoneOffset() * 1000));
var hrs2 = d2.getUTCHours();
var mins2 = d2.getUTCMinutes();

console.log("hrs2 = " + (hrs2+1) + " mins2 = "+ (mins2 + 4));

var actualHrs = hrs2+1;
var actualmins = mins2 +4;
var currtime = year+month+day+actualHrs+actualmins;
但是现在我的问题存在于我创建的日期变量中:

var d = new Date();
var day = d.getDate();
if ((day.toString()).length == 1){
    day='0'+day;
}
因为我的时间提前了4个小时,所以它认为我今天是明天


有人能帮我解决这个问题吗

您可以使用
var a=Date(timestamp)
生成正确的日期项目,该项目内部为1970年1月1日起的毫秒数

面对两个日期对象是一个简单的减法

var a = new Date();
var b = new Date(timestring);
var delta = a - b // a signed integer

因为你已经这么做了

var d2 = new Date(new Date().getTime() + (d.getTimezoneOffset() * 1000));

是处理时区问题的一种很好的方法

您可以使用
var a=Date(timestamp)
生成正确的日期项目,它在内部是从1970年1月1日开始的毫秒数

面对两个日期对象是一个简单的减法

var a = new Date();
var b = new Date(timestring);
var delta = a - b // a signed integer

因为你已经这么做了

var d2 = new Date(new Date().getTime() + (d.getTimezoneOffset() * 1000));

是解决时区问题的一种好方法

“我试图将当前时间与数据库中的某些时间字符串变量进行比较”如果javascript可以将时间字符串解释为日期,那么您肯定应该尝试这种方式,让机器处理时间字符串objects@EdoPutmy db的日期值为:2015-06-30,时间值为:08:08:00。那么,我如何将它们与js中的当前日期时间进行比较呢?需要对我上面的代码进行哪些修改?请发布准确的timestring@EdoPut我刚刚在上面的评论中发布了确切的格式:“我试图将当前时间与数据库中的一些时间字符串变量进行比较”如果javascript可以将时间字符串解释为日期,那么您肯定应该尝试这种方式,让机器处理时间字符串objects@EdoPutmy db的日期值为:2015-06-30,时间值为:08:08:00。那么,我如何将它们与js中的当前日期时间进行比较呢?需要对我上面的代码进行哪些修改?请发布准确的timestring@EdoPut我刚刚在上面的评论中发布了确切的格式?