2015-01-31 4 views
0

인스턴트 메신저 사용자가 재생할 수있는 날짜와 시간에 열고 닫을 수있는 시스템을 만들려고 시도합니다. 문제는 javascript가 정확한 시간이 아니며 정확한 시간에 변경을 수행하고 1 분 후에 변경하는 것입니다. 내가 UTC에 원래 날짜 드에 geting와 실제 날짜와 시간이 날짜를 비교하기 전에 변환하고 렸기 때문에 자바 스크립트 실패 비교 날짜

은 어쩌면 문제는 ... 내가> =, .getTime를 사용하여 단지 <, (사용하여 비교하려고

입니다)하지만 문제는 동일합니다. javascript는 시간이 동일 할 때 감지하지 못합니다. 비교는 1 분 후, 한 날짜가 부전승 일 때나 그보다 큰 경우에만 작동합니다.

이 마지막 코드입니다 : 내가 말하는대로

round_ended = new Date(round.ended + 'Z'); 
 
var date = new Date(); 
 

 
if (date.getTime() >= round_ended.getTime()) { 
 
\t round.phase = "closed"; 
 
}

, 난 성공하지, 시도,이 같은 다른 변화 :

round_ended = new Date(round.ended + 'Z'); 
 
var date = new Date(); 
 

 
if (!(date < round_ended)) { 
 
\t round.phase = "closed"; 
 
}

누군가 도울 수 있습니까?

답변

0

날짜 ISO 문자열을 비교하면 어떨까요? YYYY-MM-DDTHH:mm:ss.sssZ

+0

sugestion을 주셔서 감사합니다.하지만이 방법도 효과가 없습니다. 밀리 세컨드 (miliseconds)에 문제가있는 것 같지만 해결책을 찾았고 순서대로 게시 할 것입니다. –

0

나는 여전히 정확하게 문제를 해달라고하지,하지만 난 밀리 초 추측 :

if (!(date.toISOString() < round_ended.toISOString())) { 
    round.phase = "closed"; 
} 

는 ISO 형식이 고정됩니다. 그래서이 추측을 기반으로 솔루션을 찾았습니다.

나는 두 값의 차이를 비교하고 1000보다 작은 경우 확인 :

var time = round_ended - date; 
 

 
if (time < 1000) { 
 
    round.phase = "closed"; 
 
}
이제

이 작업의 벌금을.

도움 주셔서 감사합니다.