2012-09-27 3 views
2

사용자가 로그인하면 로그 아웃 시간이 정의되고 로그 아웃 시간 - 서버 시간에서 시간을 얻을 수있는 특정 로그 아웃 시간이 제공되는 웹 사이트를 만들고 있습니다.자바 스크립트 가져 오기 NaN : NaN : NaN

나는 이미 PHP를 통해 로그 아웃 시간과 서버 시간을 얻었지만 동적으로 남겨진 시간을 표시하여 자바 스크립트가 필요합니다. 및 ARG2의 값이 '2011 : 10 : 11 15시 55분 31초'문자열로 (ARG1의 값이 ': 10 11 17.30.00 2011'

function timerStart(arg1, arg2){ 
    var counter = setInterval(function() {getTimeLeft(arg1,arg2); }, 1000); 
} 

function getTimeLeft(arg_endtime, arg_currenttime){ 
    var endtime = new Date(arg_endtime); 
    var curtime = new Date(arg_currenttime); 

    var timeleft = new Date(endtime - curtime); //endtime - curtime; 

    tlHours = timeleft.getHours(); 
    tlMinutes = timeleft.getMinutes(); 
    tlSeconds = timeleft.getSeconds(); 

    document.getElementById("timeleft").value = tlHours + ":" + tlMinutes + ":" + tlSeconds; 

} 

이다 : 나는 다음과 같은 코드를 사용하여 시도했다 네, 그들은 다른 형식입니다). 그러나 위의 코드를 사용하면 NaN을 얻습니다. NaN : NaN. 나는 Javascript (3 일)에 매우 익숙하며 마감 시간을 따라 가기 때문에 철저한 설명이 매우 감사합니다.

+0

어떻게'timerStart'를 호출합니까? – wroniasty

+0

body 부분에서 onLoad를 통해 호출했습니다. 제임스 Wisemen 내 문제를 해결하는 것하지만 내 코드가 동적 아, 잘 아 .. –

답변

1

Date() 함수 형식은 매우 특정되어야한다.

내가 여기 조롱했습니다 http://jsfiddle.net/PtGxk/

당신이 당신의 날짜의 볼 수 있듯이이다 '/'- 분리와 시간 ''- 모든 것이 괜찮 seprated.

+0

고마워 친구 , 내 문제를 해결할 수있는 것 같아요, endtime에서 문자열 조작 만하면됩니다. -___- " –

1

자바 스크립트 안의 NaN은 "숫자가 아님"을 의미하므로 숫자가 아닌 결과로 계산할 가능성이 높습니다 (자바 스크립트는 종종 오류가 발생하지 않고 계속 진행됨). endTime과 curTime이 실제로 breakpointing 또는 console.log에 의해 어떤 값을 가지고 있는지 알아봐야합니다.

1

제 생각 엔 JavaScript의 Date 개체는 전달할 형식이 마음에 들지 않습니다. MDN에서 :

문자열은 구문 분석 방법 (IETF 호환 RFC 1123 타임 스탬프)에 의해 인식되는 형식이어야합니다.

그러나 생성자는 날짜를 제공하는 다양한 방법을 허용하기 위해 오버로드됩니다. 필자는 UNIX 시간을 1000을 곱하여 밀리 세컨드 단위로 나타 냈습니다. PHP를 빠져 나가기 쉽고, PHP와 JavaScript 모두에서 산술 연산을 할 때 더 직관적입니다.

2

은 '2011 : 10 : 11 17.30.00'와 ARG2의 값이 ': 10 : 2011 11 15시 55분 31초'는 변화한다

에 '2011년 10월 11일 17시 30분 0초' arg2의 값은 '2011/10/11 15:55:31'입니까 ??

http://jsfiddle.net/8XF3F/7/

+2

시도 편집 http://jsfiddle.net/8XF3F/7/ –

+0

아무런 결과를 얻지 못했지만 감사하지만 :) –

0
document.getElementById("timeleft").value = parseInt(tlHours) + ":" + parseInt(tlMinutes) + ":" + parseInt(tlSeconds);