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?对吧?
答案 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小时格式