2014-05-19 5 views
-2

Parse.com Cloud Code에 Javascript를 사용하고 있습니다. Parse.com에 따르면 그들은 UTC 시간을 반환합니다. 나는 동트기 전 (GMT -4)UTC 시간에서 자정을 현지 시간으로 계산하는 방법

오늘 자정에 오늘 날짜를 얻으려고 노력하고있다. 내가 원하는 어떤

var date = new Date(); 
var startDay = Math.floor((date.setUTCHours(4,0,0,0)/1000)); 

그래서 하루에 오후 8시 전에, 코드가 자정에 오늘 날짜를 반환 다음은 내 코드입니다. 그러나 오후 8시 이후에는 자정에 내일 날짜가 반환됩니다. 이유는 UTC 날짜가 자정에 Today + 1로 변경 되었기 때문입니다. 그러나 midtoight에서 현지 날짜를 얻는 방법으로이 문제를 해결하는 방법을 파악할 수 없습니다.

추 신 : 나는 또한 setHours(4,0,0,0)을 시도했습니다. setUTCHours(0,0,0,0)을 사용하면 오늘 날짜가 오후 8시에 반환됩니다.

감사합니다.

+0

정확한 제목을 봤습니다. 나의 첫 번째 히트는 바로이 질문을했다. 제발 자신의 연구를 수행, 귀하의 질문 제목을 구글, 그리고 중복으로 귀하의 질문을 닫습니다. – djechlin

+0

'항상 질문자에게 의심의 이익을 줄 것입니다 .' ... 당신이 시도한 것을 설명하는 것은 여러분에게 달려 있습니다. – charlietfl

+0

여러분, 결론을 깨기 위해 뛰어 들기 전에 OP (이 경우 나 자신)에게 의심의 이익을주십시오. Google의 첫 번째 5 페이지에서 이와 비슷한 것을 본다면 안심해도됩니다. 이것은 Javascript와 Browser가 아닙니다. 나는 구체적으로 Parse.Com을 말했다. 누구에게나 중복 된 것으로 태그를 붙인 사람에게 링크 된 솔루션은 내가 이미 시도한 것인데 내 포스트에서 말했다. 경찰을하기 전에주의 깊게 읽으십시오. – user3522242

답변

3

모든 것이 정확합니다.

UTC의 관점에서 생각해보십시오. setUTCHours (0,0,0,0)는 항상 그 날 자정으로 설정합니다.

(GMT-4)의 관점에서 자정 (UTC) 오후 8시 (GMT-4)로 날짜를 설정하면 하루가 지나야 나타납니다. 당신이 date.setUTCHours()를 호출 할 때, 그것은 첫번째은 UTC으로 그 시간을 변환하기 때문에

다음는 시간을 설정합니다. 5 월 18 일 오후 8시 GMT-4에 날짜를 만든 다음 setUTCHours()를 호출하면 먼저 해당 날짜가 5 월 19 일 오전 12시 (오전 12시)으로 변환됩니다. 그런 다음 시간 변경을 수행합니다.

다음은이 사용자의 시간대로 같은 날 자정을 반환 있는지 확인하기 위해 수행 할 수있는 작업은 다음과 같습니다

var date = new Date(); 

//Convert to midnight in your timezone first 
date.setHours(0,0,0,0); 

//Convert to midnight UTC 
date.setUTCHours(0,0,0,0); 

그것은 당신이 수용하려는 관점의 을 아는 것이 중요합니다.

+0

감사합니다. @ 예고편. 내 게시물에 명확하지 않은 경우 사과하지만 나는 이미 그것을했는데 오늘 오후 8시 반환합니다. 또한 결과로 브라우저 소비가 발생하지 않으므로 사용자의 시간대가 없습니다. 데이터는 Parse.com에서 처리됩니다. Cloud Code – user3522242

+0

이 코드를 실행하는 방법에 대해 더 알고 싶습니다. 테스트 할 때 서버에서 코드를 실행합니까? 결과가 어떻게 되찾았 는가? – gregnr

+0

코드는 서버에서 실행되며 결과는 REST를 통해 검색 할 수있는 호스트 클래스에 채워집니다. 그래서 내 서비스에서 경험이있는 사람이 도움이되기를 기대하면서 내 게시물에 Parse.com을 지정한 이유입니다. – user3522242

관련 문제