iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 5
0
自我挑戰組

前端新手的學習筆記系列 第 5

Day05:每天一個小練習 - JS顯示今日時間

  • 分享至 

  • xImage
  •  

今天是假日,來練習寫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);

連結


上一篇
Day04:每天一個小練習 - Bootstrap選單切換
下一篇
Day06:每天一個小練習 - JS時間轉中文
系列文
前端新手的學習筆記32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言