函数逻辑对javascript时钟应用没有意义

时间:2018-08-02 03:36:25

标签: javascript

function showTime () {

	let date = new Date();
	let hours = date.getHours(); //0-23
	let minutes = date.getMinutes(); //0-59
	let seconds = date.getSeconds(); //0-59

	let formatHours = convertFormat(hours);

	hours = checkTime(hours);

	hours = addZero(hours);
	minutes = addZero(minutes);
	seconds = addZero(seconds);
	document.getElementById('clock').innerHTML = hours + ':' + minutes + ':' + seconds + formatHours;

	}

	function convertFormat(time) {
		let format = 'AM';
		if (time >= 12) {
			format = 'PM';
		}
		return format;
	}

	function checkTime(time) {
		if (time > 12) {
			time = time - 12;
		}
		if (time === 0) {
			time = 12;
		}
		return time;
	}

	function addZero(time) {
		if (time < 10) {
			time = "0" + time;
		}
		return time;
	}

showTime();
setInterval(showTime, 1000);
body {
	min-height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: black;

}

#clock {
	font-family: 'Orbitron';
	font-size: 5rem;
	color: limegreen;
}
<!DOCTYPE html>
<html>
<head>
	<title>Clocck</title>
	<link rel="stylesheet" type="text/css" href="style.css">
	<link href="https://fonts.googleapis.com/css?family=Orbitron" rel="stylesheet">
</head>
<body>
	<div id="clock">
		
	</div>

	<script type="text/javascript" src="script.js"></script>
</body>
</html>

嘿,我目前正在开发一个简单的时钟应用程序。有一个特定的功能对我来说意义不大。如果convertFormat函数的> = 12,则它的if语句将其设置为等于“ PM”的时间。阅读时间是晚上8:33?当它检查小时变量并读取8时,应将格式切换为am?对吧?

2 个答案:

答案 0 :(得分:0)

看到时间为8:33 PM的原因仍然显示PM而不是AM,因为date.getHours()函数将返回“系统时钟”,而不是函数显示的时钟值。这意味着当您错误地认为convertFormat函数的输入变量为“ 8”时,实际上它是系统时钟中的20。

答案 1 :(得分:-1)

实际上,这是有道理的。该功能以12小时格式显示时间,因此即使是8:33,但在晚上,它将显示为8:33 pm。如果您只想将8:33视为上午,将20:33视为下午,请将功能更改为使用24小时格式