今天是假日,來練習寫JS吧。
抓取HTML上的位置
const allTime = document.querySelector('.allTime');
為了配合自動更新,用一個方訊包住相關變數
let showTime = () => { //下方的變數不能放外面,setInterval抓不到
let date = new Date();
let year = date.getFullYear(); //取得當前年份
let month = date.getMonth() + 1; //取得月份,從0開始計算,必須+1
let today = date.getDate(); //取得日期
let week = date.getDay(); //取得星期幾
let hour = date.getHours(); //取得小時
let min = date.getMinutes(); //取得分鐘
let sec = date.getSeconds(); //取得秒數
}
因應閱讀習慣,星期幾要使用中文顯示,故加上陣列
let arr = ["日", "一", "二", "三", "四", "五", "六"];
既然都設定好了就使用吧!
allTime.innerHTML =
`<p>
目前時間是 ${year}/${month}/${today} ${hour}:${min}:${sec}
<br>
今天是星期${arr[week]}
</p>`
再加上每秒更新就完成了。
setInterval(showTime, 1000);
但這時候會發現有時候因為時間變動,會有十位數和個位數的區別。
因此我們要在個位數出現時在前方補上0。
以下列出兩種補0的方式:
方法1:
const addZero = data => {
return data.toString().padStart(2, 0);
//padStart(要補全的長度,用來捕全的內容);
}
方法2:
const addZero2 = data => { //另一種補0
if (data < 10) {
return `0${data}`
} else {
return data;
}
}
加到原本的時間顯示上就完成了:
allTime.innerHTML =
`<p>
目前時間是 ${year}/${addZero(month)}/${today} ${addZero(hour)}:${addZero2(min)}:${addZero2(sec)}
<br>
今天是星期${arr[week]}
</p>`
來看看完整的code吧:
const allTime = document.querySelector('.allTime');
let showTime = () => { //不能放外面,setInterval抓不到
let date = new Date();
let year = date.getFullYear(); //取得當前年份
let month = date.getMonth() + 1; //取得月份,從0開始計算,必須+1
let today = date.getDate(); //取得日期
let week = date.getDay(); //取得星期幾
let hour = date.getHours(); //取得小時
let min = date.getMinutes(); //取得分鐘
let sec = date.getSeconds(); //取得秒數
let arr = ["日", "一", "二", "三", "四", "五", "六"]; //讀取星期幾的陣列
allTime.innerHTML = `
<p>目前時間是 ${year}/${addZero(month)}/${today} ${addZero(hour)}:${addZero2(min)}:${addZero2(sec)}
<br>
今天是星期${arr[week]}</p>`
;
}
const addZero = data => { //補0
return data.toString().padStart(2, 0);
//padStart(要補全的長度,用來捕全的內容);
}
const addZero2 = data => { //另一種補0
if (data < 10) {
return `0${data}`
} else {
return data;
}
}
setInterval(showTime, 1000);