Today's mission 1.
24시 단위로 받아온 시간을 오전/오후를 붙여 12시간 단위로 만드는 함수를 작성해 보았다.
>> 소스코드
function convert12H(a) {
var time = a; // 'hh:mm' 형태로 값이 들어온다
var getTime = time.substring(0, 2); // 시간(hh)부분만 저장
var intTime = parseInt(getTime); // int형으로 변환
if (intTime < 12 ) { // intTime이 12보다 작으면
var str = '오전 '; // '오전' 출력
} else { // 12보다 크면
var str = '오후 '; // '오후 출력'
}
// intTime이 12면 변환 후 그대로 12
if (intTime == 12) {var cvHour = intTime;}
// 나머지경우엔 intTime을 12로 나눈 나머지값이 변환 후 시간이 된다
else {var cvHour = intTime%12;}
// 'hh:mm'형태로 만들기
var res = str + ('0' + cvHour).slice(-2) + time.slice(-3);
// return
return res;
}
* slice(-2) : 뒤에서 2번째 자리까지 나타내는 함수
>> 결과 화면
>> 나의 사수님꼐서 주신 소수와 비교 ㅎㄷㄷ,,
/**
* 24시간 형식을 12시간 형식으로 변환한다.
* validation 미구현
*
* @params time {String} HH:MM 형식의 시간
* @params options {Object}
* ampmLabel {Array} 오전, 오후 레이블. 기본 값은 [ '오전', '오후' ]
* @return {String} 24시간 형식의 HH:MM 시간 문자열
*/
function convert12H(time, options) {
var _ampmLabel = (options && options.ampmLabel) || [ '오전', '오후' ];
var _timeRegExFormat = /^([0-9]{2}):([0-9]{2})$/;
var _timeToken = time.match(_timeRegExFormat);
if (typeof _timeRegExFormat === 'undefine') {
// 잘못된 형식
return null;
}
var _intHours = parseInt(_timeToken[1]);
var _intMinutes = parseInt(_timeToken[2]);
var _strHours12H = ('0' + (_intHours == 12 ? 12 : _intHours % 12)).slice(-2);
return _ampmLabel[parseInt(_intHours / 12)] + ' ' + _strHours12H + ':' + _intMinutes;
}
console.log(convert12H('12:30'));
console.log(convert12H('11:30'));
console.log(convert12H('13:30'));
console.log(convert12H('00:30'));
console.log(convert12H('23:30'));
console.log(convert12H('00:30', {
ampmLabel: ['AM', 'PM']
}));
console.log(convert12H('22:30', {
ampmLabel: ['AM', 'PM']
}));
★ 비교후 느낀점 : 내껀 허접허접왕허접 ㅠㅠㅠㅠㅠ 갈길이 멀어으어으어 절망절망왕절망......
' └ Java Script' 카테고리의 다른 글
[Java Script] prototype 이용한 함수 확장1 - 오늘 날짜 반환 (0) | 2014.04.09 |
---|---|
[Java Script] Java Script 오늘 날짜 출력하는 함수 만들기 (0) | 2014.04.09 |
[jQuery] 4장.jQuery 선택자 (0) | 2014.04.08 |
[jQuery] 3장.jQuery의 작동 원리 (0) | 2014.04.08 |
[JSON] about JSON(Java Script Object Notation) (0) | 2014.04.07 |