2012-09-13 2 views
0

JavaScript로 UTC로 날짜를 작성하고 시간과 분을 지정하고 시간 소인을 지정하려고합니다. 예를 들어JavaScript에서 UTC 날짜를 만들고, 요일을 추가하고, 유닉스 타임 스탬프를 얻으십시오.

나는 15 시간 25 분을하는 경우, 나는이 일을 해요 :

var to_date = new Date(); 
to_date.setUTCHours(15); 
to_date.setUTCMinutes(25); 
var to_utc = new Date(to_date.getUTCFullYear(), 
       to_date.getUTCMonth(), 
       to_date.getUTCDate(), 
       to_date.getUTCHours(), 
       to_date.getUTCMinutes(), 
       to_date.getUTCSeconds()); 
var to_unix = Math.round(to_utc.getTime()/1000); 
console.log(to_unix); 

문제는이 올바른 타임 스탬프를 반환하지 않는 것입니다. 시간을 UTC가 아닌 시간대로 설정하고 있습니다. UTC로 이것을 유지하는 방법에 대한 아이디어가 있습니까?

또한 현재 시간이 지난 경우 시간을 추가하려고합니다. 현재와 ​​대조하여 60*60*24을 추가하려고 시도했지만이 내용은 지정한 것과 일치하지 않는 분/시간을 반환했습니다.

도움이 될 것입니다.

+0

이 링크는 당신을 도울 수 있습니다 문제 해결해야 다음은 http://stackoverflow.com/questions/221294/how-do-you-get-a-timestamp-in-javascript . – Anoop

답변

5

에 시간을 설정 to_date.setHours(0,0,0,0);를 사용

var d = new Date(); 
d.setUTCHours(15); 
d.setUTCMinutes(25); 
d.setUTCSeconds(0); 

d 지금 15시 25분 오늘 나타냅니다 UTC.

것은 당신이 처음부터 시작하는 경우 :

var d = new Date(Date.UTC(year, jsmonth, day, utchour, utcminute, utcsecond)); 

는 유닉스 타임 스탬프를 얻으려면, 시대 UTC 이후의 밀리 초 수를 반환 getTime을 사용하고있는 (유닉스 시간으로 변환하기 위해 1000 분할 보다는 밀리 초)에 :

Math.round(d.getTime()/1000); 

Date.now() 당신에게 밀리 초, 에포크 UTC의 현재 시간을 제공합니다. 하루를 추가하고 미래에 있는지 확인하려면 다음

d.getTime() + (1000*60*60*24) > Date.now() 
+0

날짜/시간을 설정할 수있는 동안 어떻게 통합 할 수 있습니까? – dzm

+0

죄송합니다. 나는 현재 시간에 하루를 추가하고 싶다고 생각했습니다. 업데이트 됨. – josh3736

+0

그건 그랬어 - 고마워! – dzm

1

코드를 사용하여 다음 DEMO을 시도 감사드립니다.

이 시간대를 제거하려면 기존의 Date 객체로 땜질하는 경우 00:00:00:00

+0

에포크 변환기를 사용하면 똑같은 일을하는 것 같습니다. GMT : Thu, 13 Sep 2012 19:25:00 GMT' 시간대 : Thu Sep 13 2012 15:25:00 GMT-4' GMT는 내 표준 시간대 대신 15:25:00이어야합니다. – dzm

+0

이 게시물을 살펴보십시오. http://stackoverflow.com/questions/439630/how-do-you-create-a-javascript-date-object-with-a-set-timezone-without-using -as – Chase

+0

감사합니다. 이것은 정말로 내 견과를 몰고 있었다. –

0

양식 link 다음에, getTimezoneOffset() 메소드는 분, UTC 시간과 로컬 시간의 시간 차이를 반환합니다.

var to_unix = Math.round((Date.now() + (new Date().getTimezoneOffset()))/1000); 
console.log(to_unix); 

jsfiddle

+0

이것은 이해가되지 않습니다. 'Date.now()'는 항상 UTC를 취급합니다. – josh3736

관련 문제