![](/img/trans.png)
[英]How to apply the local timezone offset to a utc datetime with Moment.js?
[英]apply timezone offset to js code
我试图将当前时间与数据库中的一些时间字符串变量进行比较。
我可以使用以下代码,但是服务器上的时间已更改,现在不再可用。
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但我需要它返回20150 7 072 2 42
任何帮助表示赞赏。
更新
我将使用以下方法获取正确的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));
是解决时区问题的一种好方法
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.