2010-01-24 4 views
3

내 홈페이지에 http://www.dynamicdrive.com/dynamicindex6/localtime.htm과 같은 자바 스크립트 월드 타임 시계를 포함하고 싶지만 DST가 시간대에 따라 바뀔 때마다 변경하고 싶지는 않습니다. DST 이후 다른 장소의 라이브 시간대와 변경하지 않고 현재 시간을 표시 할 수 있도록 공식적인 시간 서버와 자동으로 동기화 할 수 있습니까?DST 지원 및 서버 동기화가있는 월드 타임 시계

+0

Windows Server/.NET에는 시간대에 대한 많은 기록이 있으므로 사용자 환경에 따라 공식 시간 서버가 필요하지 않을 수도 있습니다. 귀하의 질문은 비록 당신이 서버 측 코드가없는 "순수한"자바 스크립트 솔루션을 찾고 있다고 명시하지 않습니다. –

+0

서버가 Linux (Debian)에서 실행 중이며 서버 측 언어가 필요한 경우 PHP (나머지 웹 사이트도 PHP로 작성)를 사용하고 싶습니다. – Peleke

답변

1

date_default_timezone_set과 함께 표준 date 기능을 사용하십시오.

$timezones = array("Australia/Brisbane", "America/New York", "Europe/London"); 

foreach ($timezones as $tz) { 
    date_default_timezone_set($tz); 
    echo "The time in $tz is: " . date('r'); 
} 

모든 일광 절약제와 모든 것을 처리합니다.

현재 지원되는 시간대의 목록을 찾을 수 있습니다 http://www.php.net/manual/en/timezones.php


편집 :자바 스크립트 구현 :

  1. 출력에 PHP를 얻기 위해 위의 방법을 사용하여 모든 다른를 관심있는 시간대는 date('Z')으로 UTC에서 초를 가져옵니다.

    var offsets = { 
        'Brisbane' : 36000, 
        'Sydney' : 42000, 
        'London' : 0 
    }; 
    
  2. 루프를 그들 모두를 추가하고 필요에 따라 오프셋을 뺀 : 자바 스크립트를 사용할 수 있도록 출력은 JSON 또는 무언가를 사용하여.

    for (var city in offsets) { 
        var d = new Date(); 
        d.setTime(d.getTime() + offsets[city] * 1000); 
        alert('The time in ' + city + ' is ' + d.toUTCString()); 
    } 
    
  3. 가 경고하지만 setInterval을

를 사용하여 매 초마다 호출되는 함수로 위를 넣어 :이 이론에 있기 때문에, 정확한 보장되지 않습니다, 위치의 시간대는 변경 될 수 있습니다 누군가가 창을 열어 놓은 상태입니다 (DST의 경계에있을 수 있음). 별로 가능성은 없으며 페이지를 새로 고침하면 적절한 시간이 표시되므로 큰 문제는 아닙니다.

+0

JavaScript를 원할 때 PHP를 사용한다고 언급하는 것을 잊었습니다. 모든 초기 데이터를 일부 양식 필드에로드하고 JavaScript를 사용하여 setInterval 함수를 사용하여 폴링하여 시간을 업데이트하는 것이 좋습니다. –

+0

그래, 이미 그와 같은 코드를 사용하고 있지만 JavaScript로 시계를 실시간으로 업데이트하고

+0

@Peleke 지금 편집을 확인하십시오. – nickf