2013-08-22 34 views
2

我有这样的代码,我不能得到第二次正确格式:格式的JavaScript日期时:分:秒

setInterval(function() { 
 
    var local = new Date(); 
 
    var localdatetime = local.getHours() + ":" + local.getMinutes() + ":" + local.getSeconds(); 
 

 
    var remote = new Date(); 
 
    var remotedatetime = remote.getHours() + ":" + remote.getMinutes() + ":" + remote.getSeconds(); 
 

 
    var remoteoffset = remote.setHours(local.getHours() - 5); 
 

 
    $('#local-time').html(localdatetime); 
 
    $('#remote-time').html(remoteoffset); 
 
}, 1000);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
My Time: 
 
<div id="local-time"></div> 
 
Their time: 
 
<div id="remote-time"></div>

local-time是完美的,显示“HH:MM: ss“

remote-time只显示随机数列表。

我怎样才能让remote-time“hh:mm:ss”呢?

+0

remoteoffset.toString()? –

+0

你永远不会处理所有可能的时区,使用UTC –

+0

_“远程时间只显示一个随机数列表。” - 它们不是随机的,它们只是你所期望的格式。注意,在将其设置为格式化值后,您从不使用'remotedatetime'变量? – nnnnnn

回答

6

要调整remote获取其字符串表示,所以这就是做你没有好。

然后你显示的结果是setHours()(1970年1月1日以来的毫秒)而不是字符串。

这是我认为你的目标为:

setInterval(function() { 
 
    var local = new Date(); 
 
    var localdatetime = local.getHours() + ":" + pad(local.getMinutes()) + ":" + pad(local.getSeconds()); 
 

 
    var remote = new Date(); 
 
    remote.setHours(local.getHours() - 5); 
 
    var remotedatetime = remote.getHours() + ":" + pad(remote.getMinutes()) + ":" + pad(remote.getSeconds()); 
 

 
    $('#local-time').html(localdatetime); 
 
    $('#remote-time').html(remotedatetime); 
 
}, 1000); 
 

 
function pad(t) { 
 
    var st = "" + t; 
 
    
 
    while (st.length < 2) 
 
    st = "0" + st; 
 
    
 
    return st; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
My Time: 
 
<div id="local-time"></div> 
 
Their time: 
 
<div id="remote-time"></div>

0
setInterval(function() { 
    var local = new Date(); 
    var localdatetime = local.getHours() + ":" + local.getMinutes() + ":" + local.getSeconds(); 

    var remote = new Date(); 
    remote.setHours(local.getHours() - 5); 
    var remotedatetime = remote.getHours() + ":" + remote.getMinutes() + ":" + remote.getSeconds(); 

    $('#local-time').html(localdatetime); 
    $('#remote-time').html(remotedatetime); 
},1000);