2014-11-05 4 views
0

왜 작동하지 않는지 알 수 없습니까? 제발 도와 주실 수 있습니까?내 setInterval이 예상대로 작동하지 않습니다.

function calcTime(city, offset) { 
    d = new Date(); 
    utc = d.getTime() + (d.getTimezoneOffset() * 60000); 
    nd = new Date(utc + (3600000*offset)); 
    return nd.toLocaleString(); 
} 

var Paris =setInterval(function() { calcTime('gmt', '+1'); }, 500); 

내가 파리 변수

+4

무엇을 기대합니까? 작동하지 않는 것은 무엇입니까? – plalx

+0

이것은 어떻게 동작 하는가? var Chipre = calcTime ('gmt', '+2'); 하지만 만약 내가 intervall을 설정하지 않으면 작동하지 않습니다 –

+1

사람들은 너무 신중한 그렇게하지 마십시오. 코드가 있었고 그가 원하는 것이 분명했습니다. – mplungjan

답변

1

setInterval에 calcTime의 값을 얻을하지 않습니다는 간격 포인터, 함수가 아닌 값을 반환합니다.

당신은 가능성이 대신

function calcTime(city, offset) { 
    var d = new Date(); 
    var utc = d.getTime() + (d.getTimezoneOffset() * 60000); 
    var nd = new Date(utc + (3600000*offset)); 
    return nd.toLocaleString(); 
} 
var parisTId =setInterval(function() { 
    document.getElementById("paris").innerHTML=calcTime('gmt', '+1'); 
}, 500); 
0

당신이 (모든 시간대 오프셋은 전체 시간 때문에 아마도 소수 시간) 시간에 특정 오프셋과 장소에 현재 시간을 얻으려고 보인다합니다. 당신이 당신의 자신을 구축 할 수 있습니다, 그래서 날짜가 조정 된 사용자의 현재 위치가 아닌 시간대의 시간대를보고 toLocaleString를 사용하는 것을

// Offset is per javascript timezone offset, i.e. minutes to subtract 
// from UTC to get local time, so for a place that is UTC+01:00 use -60 
function calcTime(offset) { 
    var d = new Date(); 
    d.setMinutes(d.getMinutes() + d.getTimezoneOffset() - offset); 
    return d; 
} 

참고 : 당신은 단순히 사용하여 상당히 그렇게 할 수 올바른 오프셋을 가진 문자열 (예 : ISO 8601을 기반으로 함).

관련 문제