2011-01-22 5 views
0

나는 아주 새 JavaScript를 사용하고 있습니다. 내 생각 엔 아주 쉬운 대답이 있다는 것입니다. hh:mm:ss의 형식으로 시간을 초로 변환해야합니다. 당신이 뭔가를 할 수JavaScript 시간 변환

+0

당신은 어떤 라이브러리, 또는 순수 자바 스크립트를 사용하십니까 시도? 프레임 워크/라이브러리를 사용하면 날짜/시간을 변환 할 수있는 기능이있을 가능성이 있습니다. www.datejs.com/ – Maxym

답변

2

:

var s = "1:01:01"; 
var a = s.split(":"); 

var sec = parseInt(a[0], 10)*60*60; 
sec += parseInt(a[1], 10)*60; 
sec += parseInt(a[2], 10); 

alert(sec); 
+0

Big gotcha : parseInt는 앞에 오는 0이 포함 된 문자열을 전달할 때 예기치 않은 방식으로 동작 할 수 있습니다.'parseInt ("09") -> 0' 및'parseInt (" 010 ") -> 8'. 이것은 앞에 오는 0이있는 숫자가 1의 경우와 같이 8 진수로 처리되기 때문입니다. 8 진수의 번호 체계에서 9가없고 2의 경우 : 8 진수 10은 10 진수 8에 해당합니다. parseInt를 사용할 때는 십진수에 10의 기수를 지정해야합니다 :'parseInt ("09", 10) -> 9 "및'parseInt ("010 ", 10) -> 10". –

+0

@Salman 좋은 캐치 - 완전히 예기치 않은 결과를 얻을 때까지는 항상 잊어 버립니다. 나는 그 대답을 편집했습니다. –

+0

감사합니다. – giodamelio

0

<SCRIPT LANGUAGE="JavaScript1.1"><!-- 
function split(string,text) { 
    splitArray = string.split(text); 
    splitIndex = splitArray.length; 
} 
//--></SCRIPT> 


    <SCRIPT LANGUAGE="JavaScript"><!-- 
    var splitIndex = 0; 
    var splitArray = new Array(); 

    function calculateTime() { 
     splitIndex = 0; 
     split(document.myForm.myTime.value,':'); 

     for (var i=splitIndex-1, j=1, answer=0; i>=0; i=i-1, j=j*60) 
      answer += splitArray[i]*j - 0; 

     document.myForm.mySeconds.value = answer; 
    } 
    //--></SCRIPT> 

    <FORM NAME="myForm"> 
    <P>HH:MM:SS = <INPUT NAME="myTime" TYPE="TEXT" MAXLENGTH="8" LENGTH="10"> 
    <P>Seconds = <INPUT NAME="mySeconds" TYPE="TEXT"> 
    <P><INPUT TYPE="BUTTON" VALUE="Calculate" onClick="calculateTime()"> 
    </FORM>