2014-03-04 4 views
0

한 번에 시간대를 가져와야하는데 날짜는 중요하지 않지만 일광 절약 시간은 중요합니다. 같은주어진 시간에서 시간대를 가져올 간단한 시간이 있습니까?

뭔가 :

timezone = function("15:00"); 

이 작업을 수행 할 수있는 간단한 방법이 있나요?

+0

['Date.prototype.getTimezoneOffset'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset) 아마도? – ajp15243

+0

시간대는 어떻게 결정합니까? 인수가 정확한 시간이 될 시간대입니까? – Mathias

+0

당신이 묻는 것은 논리적으로 합리적이지 않습니다. –

답변

1

난 당신이 시간에서 시간대를 얻을 수 있다고 생각 해달라고하지만 Date.prototype.getTimezoneOffset()

의 도움을받을 수있는에, getTimezoneOffset() 메서드는 현재에 대한 UTC (분) 오프셋 시간대를 반환 장소.

예 :

var x = new Date(); 
var currentTimeZoneOffsetInHours = x.getTimezoneOffset()/60; 
0

new Date()과 같이 날짜 개체를 사용하면 .getTimezoneOffset()을 사용하여 날짜 개체와 UTC 사이의 시간대 (사용 가능한 표준 시간대 정보)를 얻을 수 있습니다.

1

아니, 물론 아니지. 그것에 대해 생각해 보면, 당신은 15:00을 그 함수로 넘겨 주며, 3PM이라고 할 수 있습니다. 그러나 어떤 시간대에 오후 3시입니까? 알 길이 없습니다. 그것은 나에게 마치 그것이 몇시에 끝나는 지 말할 것도없이 4 분의 1이라고 말한 것과 같습니다. 당신이 얻을 수있는

유일한 방법은 JS에서 시간대는 the Date object을 사용하는 것입니다,하지만 그건 단지 기계의 시간대가있는 코드가, 시간 당신에게 "창조"라는 TZ에 대해 아무것도 실행하지 않습니다 보여줍니다 처리 중이 야.

또한 일광 절약 시간제는 전체적인 현상이 아니며, quite the contrary입니다. AFAIKT, DST가 항상있는 단일 시간대가 없습니다 ...

1

TimeZone 정보를 얻으려면 날짜 (및 오프셋) 이상이 필요합니다. 위치가 필요합니다.

자바 스크립트는 자바 스크립트가있는 위치를 알지 못하지만 현재 오프셋 (UTC)을 알고 있습니다. 그것은 표준 시간대와 다릅니다. 일광 절약 시간 문제는 이러한 주요 차이점을 혼란스럽게합니다.

시간대를 알고 있고 날짜가 특정 표준 시간대에있는 것으로보고하는 서버 응용 프로그램을 처리 할 때 문제가 발생합니다.

내 경험에 비추어 볼 때 상당히 간단합니다.

날짜 또는 시간 간격을 저장, 전달 및 처리하는 데 항상 길거나 긴 숫자 (64 비트 숫자)를 사용하고 사람들과 상호 작용할 때만 날짜, 달력 또는 DateTime 개체로 변환하십시오.

관련 문제