時分秒からDateオブジェクトおよび時分を取得

Demo

HTML


<input type="text"  id="his_text" value="12:26:15"/>
<button type="button" onclick="test1()" class="btn btn-success">テスト</button>
<table class="tbl2"><tbody>
	<tr><td>Dateオブジェクト</td><td><span id="res1" class="text-primary"></span></td></tr>
	<tr><td>時分</td><td><span id="res2" class="text-success"></span></td></tr>
</tbody></table>
	

JavaScript



function test1(){
	
	let his_text = $('#his_text').val();
	let date1 = convHisToDate(his_text);
	$('#res1').html(date1.toLocaleString());
	
	let hi = convHisToHi(his_text);
	$('#res2').html(hi);
	
}

/**
 * H:i:s形式の時分秒から時分文字列を取得する
 *@param his H:i:s形式の文字列。 H:i形式でも良い。
 *@return string 時分文字列
 */
function convHisToHi(his){
	if(his==null) return '';
	his = his.trim();
	let ary = his.split(':');
	let h = 0;
	let i = 0;
	let len = ary.length;
	if(len == 3 || len == 2){
		h = ary[0];
		i = ary[1];
	}else{
		throw new Error('Not in "H: i: s" format!');
	}
	
	let hi = h + ':' + i;
	return hi;
	
}


/**
 * H:i:s形式の時分秒からDateオブジェクトを取得する
 *@param his H:i:s形式の文字列。 H:i形式でも良い。
 *@return Dateオブジェクト
 */
function convHisToDate(his){
	if(his==null) return '';
	his = his.trim();
	let ary = his.split(':');
	
	let len = ary.length;
	let h = 0;
	let i = 0;
	let s = 0;
	if(len == 3){
		h = ary[0];
		i = ary[1];
		s = ary[2];
	}else if(len == 2){
		h = ary[0];
		i = ary[1];
		s =0;
	}else{
		throw new Error('Not in "H: i: s" format!');
	}

	let d1 = new Date();
	d1.setHours(h);
	d1.setMinutes(i);
	d1.setSeconds(s);
	
	if(d1 =='Invalid Date' ) throw new Error('Not in "H: i: s" format!');

	return d1;
	
}