JavaScriptで現在時刻を HHMISS の形式で取得する

JavaScriptで現在時刻を HHMISS の形式で取得するコードです。

サンプルの中では、getHours() dt.getMinutes() dt.getSeconds() をキャストしているが、マルチキャストのため、数値として足し算してくれちゃうんだよね。

エンジニアが、キャストしないとコンパイラが通らない言語で、キャストを意識できるようになっていればいいが、それでもバグの温床になる。

その辺が、JavaScriptがクソだという理由。

	/**
	 * 現在時刻を String の HHMISS の形式で取得する。
	 * @param なし
	 * @return String の HHMISS の形式の現在時刻
	 */
	function getNowHhmiss() {

		var dt= new Date();
		hours = String(dt.getHours());
		minutes = String(dt.getMinutes());
		seconds = String(dt.getSeconds());

		/*
		 getHours() dt.getMinutes() dt.getSeconds() の戻り値は数値
		 HHMISSの形式に連結した場合は、Stringにキャストする必要がある。

		 キャストを意識できないコーダーだとこの辺がクソでバグが内封される!

		 例)下記のコードは、戻り値が数字のため、hours + minutes + seconds は数字として足し算される。
		 hours = dt.getHours();
		 minutes = dt.getMinutes();
		 seconds = dt.getSeconds();
		 alert(hours + minutes + seconds);
		*/

		if (hours < 10) {hours   = "0" + hours;}
		if (minutes < 10) {minutes = "0" + minutes;}
		if (seconds < 10) {seconds = "0" + seconds;}

		//alert("現在時刻 hhmiss = " + hours + minutes + seconds);
		return hours + minutes + seconds;
	}

 

このエントリーをはてなブックマークに追加