2014-11-17 5 views
0

친구,JavaScript에서 "시간 1"- "시간 2"를 계산하는 방법은 무엇입니까?

두 번 차이를 계산하고 싶습니다. ': 00 : 00 -03'결과 defaultWorkDay을하고 기대 - 예를 들어 나는

var workedHours = '05:00:00'; 

var defaultWorkDay = '08:00:00'; 

그래서 내가 workedHours을 CALC 할 필요가 생깁니다.

나는 moment.js를 시도했지만 성공하지 못했습니다.

몇 가지 제안 사항이 있으십니까?

+0

가능한 중복 [자바 스크립트의 시간 차이를 확인 (http://stackoverflow.com/questions/1787939/check-time-difference-in-javascript) – Cheery

+2

moment.js 아름답게이를 처리해야합니다. 시도한 순간을 게시 할 수 있습니까? js 기반 코드? – DeeDee

+1

실제로 뭔가를 시도한 경우 해당 코드를 게시하고 작동 방법 및 그 대신 발생한 상황을 설명해야합니다. – Pointy

답변

1

나는 moment.js을 사용한 적이 있지만, 나는 이것이 당신을 위해 일해야한다고 생각 :

var defaultWorkDay = '08:00:00'; 
 
    var workedHours = '05:00:00'; 
 
    var a = moment.duration(defaultWorkDay); 
 
    var b = moment.duration(workedHours); 
 
    
 
    console.log([ b.subtract(a).hours(), b.subtract(a).minutes(), b.subtract(a).seconds() ] 
 
    ) // [-3:0:0]
<script src="http://momentjs.com/downloads/moment.min.js"></script>

http://momentjs.com/docs/#/durations/subtract/

+0

기본 작업을 위해 31KB (축소)를 추가하는 것은 불필요하다고 생각합니다. –

+0

몇 분 및 몇 초 동안 작동하지 않습니다. –

+0

분과 초로 작업하도록 수정되었습니다. –

0

당신이 할 수있는이 같은 this 당신이 형식 확신하는 경우 항상 hours:minutes:secnodes ... :

0

날짜를 접두사로 붙인 다음 (아래처럼) 시간을 날짜로 변환 한 다음 Date 객체에서 .getTime()을 사용하여 계산하십시오. 그런 다음 밀리 초를 시간으로 변환하거나 원하는 다른 시간 단위로 변환하십시오. 의

var date1 = new Date("2000-01-01 05:00:00"); 
    var date2 = new Date("2000-01-01 08:00:00"); 
    var msTimeOffset = date1.getTime() - date2.getTime(); 
    var hourTimeOffset = msTimeOffset/1000/60/60; 
    expect(hourTimeOffset).toBe(-3); // passes