2014-06-17 2 views
0

음악 애플리케이션을 제작 중입니다. 음악 파일이 추가 된 경우 기간 (밀리 초 단위)을 가져와 기간을 분으로 변환해야합니다.자바 스크립트에서 Date() 메소드로 예상 결과를 얻을 수 없습니다.

var d = new Date(ms); 
var hms = d.getMinutes().toString() +':'+ d.getSeconds().toString(); 

내가 ms = 331807;

expected answer is = 11:42하지만 난 문제를 알아낼 수없는 오전 result is = 41:02
를 제공하고있다합니다. 누구든지 해결책을 찾도록 도와 줄 수 있습니까?

+4

정확하게 '331807 ms'가 '331.807 초'(실제로는 5 분 31 초)로 변환되어서는 안되는 것이 신비입니다. 나는 두려워합니다. – raina77ow

+1

sidenote로서이 질문은 PHP, mootools 및 zend 프레임 워크와 얼마나 관련이 있습니까? 'datetime' 태그는 훨씬 더 관련이 있습니다. – raina77ow

+0

http://jsfiddle.net/Fhyc7/ 점점 오전 5:31, @ raina77ow가 말한 것처럼 .. –

답변

2

Date 개체는 1970 년 1 월 1 일부터 밀리 초를 예상합니다. 그러나, getMinutesgetSeconds 기능은 코드가 실행되는 시간대에 출력 상대가 될 것입니다.

을이의 Date 객체를 사용하려면 getUTCMinutesgetUTCSeconds 대신 사용해야합니다.

그러나 다른 사람들이 지적했듯이 Date 개체의 경우에는 그렇지 않습니다. 밀리 초를 분과 초로 변환하는 간단한 수학을 할 수 있습니다.

+0

메신저 getUTCMinutes 및 getUTCS 초를 사용하는 경우 결과는 다음과 같습니다. 0 : 29하지만 결과는 0 : 58 ........ (미안하지만 답을 얻을 수 있지만 주석을 제거 할 수 없습니다) .. 이 설명을 진심으로 감사드립니다. – user3048401

1

Date 생성자는 선택적 인수가 전달 된 새 객체를 인스턴스화합니다. 밀리 초 단위를 전달하면 새 Date 객체가 전달됩니다.이 객체는 전달 된 밀리 초 수를 기준으로 한 신기원 이후의 날짜와 시간입니다. getMinutes은 아마도 4230을주었습니다. Date 생성자에 전달 된 시간이 생성 된 날짜의 42 분에 있었기 때문입니다.

간단한 곱셈으로 밀리 초를 몇 분으로 변환 할 수 있습니다.

numberOfMilliseconds/(1000*60) 
관련 문제