[JS] JavaScriptでデジタル時計を作る
JavaScript を使って時計を作ってみます。全コードが知りたい方は、最後に載せているコードをご利用ください。
JavaScript 部分から作成していきます。現在日時を表示に合わせてフォーマッティングしていきます。日時は Date で取得することができます。Date で取得した値を利用し、表示したい形式に合わせていきます。値を更新してくために100ミリ秒ごとに更新を繰り返すようにしていきます。
function clockUpdate() {
// 現在の時刻
const now = new Date();
// 年
const year = now.getFullYear()
// 月
const month = String(now.getMonth()+1).padStart(2, "0")
// 日
const date = String(now.getDate()).padStart(2, "0")
// 曜日
const day = now.getDay()
// 時(ゼロ埋めして00にします)
const hour = String(now.getHours()).padStart(2, "0")
// 分(ゼロ埋めして00にします)
const minute = String(now.getMinutes()).padStart(2, "0")
// 秒(ゼロ埋めして00にします)
const second = String(now.getSeconds()).padStart(2, "0")
// 曜日の一覧
const dayname = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'];
// 日付「年-月-日 (曜日)」のテキストを作ります
const strDate = `${year}-${month}-${date} (${dayname[day]})`;
// 時間「時:分:秒」のテキストを作ります
const strTime = `${hour}:${minute}:${second}`;
// IDがClockDateの値を日付にします
const clockDate = document.getElementById("clockDate");
clockDate.textContent = strDate;
// IDがClockTimeの値を時間にします
const clockTime = document.getElementById("clockTime");
clockTime.textContent = strTime;
}
前記で作った関数(funciton)である clockUpdate を 100ミリ秒ごとに実行します。
window.addEventListener('DOMContentLoaded', function(){
setInterval(() => {
clockUpdate()
}, 100);
});
HTML部分です。日付と時間を表示する部分をdivで作成しています。
<div style="text-align: center; width: 100%;">
<div id="clockDate" style="font-size:20px"></div>
<div id="clockTime" style="font-size:40px"></div>
</div>
全コードです。Google Fonts を利用して見た目を調整しています。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Clock</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+Mono&display=swap" rel="stylesheet">
</head>
<body>
<div style="text-align: center; width: 100%;">
<div id="clockDate" style="font-size:20px"></div>
<div id="clockTime" style="font-size:40px"></div>
</div>
<script>
function clockUpdate() {
const now = new Date();
const year = now.getFullYear()
const month = String(now.getMonth()+1).padStart(2, "0")
const date = String(now.getDate()).padStart(2, "0")
const day = now.getDay()
const hour = String(now.getHours()).padStart(2, "0")
const minute = String(now.getMinutes()).padStart(2, "0")
const second = String(now.getSeconds()).padStart(2, "0")
const dayname = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'];
const strDate = `${year}-${month}-${date} (${dayname[day]})`;
const strTime = `${hour}:${minute}:${second}`;
const clockDate = document.getElementById("clockDate");
clockDate.textContent = strDate;
const clockTime = document.getElementById("clockTime");
clockTime.textContent = strTime;
}
window.addEventListener('DOMContentLoaded', function(){
setInterval(() => {
clockUpdate()
}, 100);
});
</script>
</body>
</html>