2011-04-11 7 views
1

12 시간 또는 24 시간의 시간을 허용하는 '시간'이라는 텍스트 상자가 있으며이를 12 시간 형식 즉, (hh : mma) 형식으로 변환합니다.15 분 단위로 증가하는 형식의 시간 간격

필자의 요구 사항은 시간을 15 분 단위로 변환하는 것입니다. 예를 들어

는 :

사용자가 입력하면 01 : 10A를, 그것은 01으로 변환한다 : (15A)를 자동적.

특별한 경우 :

사용자가 11 입력하면

: 53A를, 그것은 12로 변환해야합니다 00p (여기 예고 오전/오후 값이 변경)

사용자가 11 입력하면

: 53P를,이 변환해야 ~ 12 : 00a (여기서 am/pm 값이 변경됨)

이것은 자바 스크립트 기능 내에서 수행되어야합니다.

이 변환에 필요한 논리를 제안하십시오.

답변

2

날짜를 올바르게 처리하는 데 60 분이 걸린다는 사실을 사용할 수 있습니다. 필요에 따라 끝에

var parts, d, s = '11:55pm'; 
if (parts = /(\d+):(\d+)(\w+)?/.exec(s)) { 
    // date is good 
    d = new Date(); 
    if (parts[3] == undefined) { 
     // 24 hr 
     d.setHours(parseInt(parts[1])); 
    } else { 
     d.setHours(parseInt(parts[1]) + ((parts[3].indexOf('a') >= 0) ? 0 : 12)); 
    } 
    // if this is 60, wraps hours... 
    d.setMinutes(Math.round(parseInt(parts[2])/15)*15); 
    alert(d.toString()); 
} 

, 그냥 the functions here와 형식으로 d에 액세스 할 수 있습니다.

+0

참고 : 형식 검사와 마찬가지로 12 시간 대 24 시간을 올바르게 처리합니다. – Sajid

+0

도움을 주셔서 감사합니다. – gin

+0

@gin : 환영합니다. 이것이 완전한 답이라면 질문을 대답으로 표시하여 실이 닫히도록하십시오. – Sajid

관련 문제