Javascript的時間處理

獲得目前的日期與時間

var date = new Date(); 
//Tue Feb 18 2020 16:55:28 GMT+0800 (台北標準時間)

傳入指定日期與時間

new Date(年, 月, 日, 時, 分, 秒, 毫秒) //至少要有年與月,未填入的預設0

var date = new Date(2019, 11, 25); 
//Wed Dec 25 2019 00:00:00

GMT+0800 (台北標準時間)
Javascript的㇐月是0,12月是11

new Date(2019, 12, 25) 
//2020年1月25日

new Date(19, 0, 25) 
//1919年1月25日

Date的宣告

傳入自世界標準時間(UTC) 1970 年 1 月 1 日 00:00:00 開始的毫秒整數值

var date = new Date(2020); 
//Thu Jan 01 1970 08:00:02 GMT+0800 (台北標準時間)

傳入時間字串(dateString)

var date = new Date("October 10, 2019 11:13:00"); 
//Thu Oct 10 2019
// 11:13:00 GMT+0800 (台北標準時間)

Date的方法

Date.now()
回傳對應於當下時間的數值 - 1970/01/01 00:00:00 (UTC) 到當下的毫秒數

Date.parse(dateString)
Date.parse(“01 Jan 1970 00:00:00 GMT”); //回傳0

Date.UTC(年, 月, 日, 時, 分, 秒, 毫秒)
回傳由 1970/01/01 00:00:00 (UTC) 到該時間的毫秒數值

Date.UTC(2020); 
//回傳1577836800000

以下方法均需先宣告

var date = new Date(); //使用目前時間

回傳指定時間

date.getFullYear() //2020
date.getMonth() //回傳月份 0~11
date.getDate() //回傳日期 1~31
date.getDay() //回傳星期(星期日 = 0,星期六 = 6)

設定時間

date.setFullYear(2019) //目前時間變為2019年
date.setHours(0) //設定目前是半夜12點

setTimeout基本語法

setTimeout(function, milliseconds, param1, param2, …)
function必填(如必須傳入參數才需填入後方參數值)
milliseconds不填則預設為0
只執行㇐次

setTimeout(code, milliseconds)
code必須加上雙引號

setTimeout回傳值

timeoutID = setTimeout(function(){ alert("Hello"); }, 3000); //三秒後alert("Hello")

timeoutID = setTimeout("alert('Hello');", 3000); //執行結果同第㇐種寫法
//返回值timeoutID是㇐個正整數,表示計時器物件的編號

timeoutID = setTimeout(function(){ 
    console.log("Hello"); 
}, 0);
alert(timeoutID); //獲得正整數1

clearTimeout()方法

停止 setTimeout() 方法執行函數

setTimeout(timeoutID)
hello = setTimeout(function(){ alert("Hello"); }, 3000);
clear = setTimeout(function(){ clearTimeout(hello);
alert("Don’t Hello"); }, 2000); 
// hello這個計時器因為三秒後才執行,但經過兩秒就執行clear這個計時器停止hello執行

setInterval用法

setInterval(function, milliseconds, param1, param2, ...)
//function必填(如必須傳入參數才需填入後方參數值)
//milliseconds不填則預設為10

//根據設定時間不斷執行
setInterval(code, milliseconds) //code必須加上雙引號
timeoutID = setInterval(function () { alert("Hello"); }, 3000);
timeoutID = setInterval("alert('Hello');", 3000); //每三秒alert("Hello")

clearInterval()方法

停止 clearInterval() 方法執行函數

clearInterval(intervalID)

hello = setInterval(function(){ 
    alert("Hello"); }, 3000
);

clear = setTimeout(function(){ 
    clearInterval(hello); 
    alert("Stop Hello!"); 
}, 10000); 
//hello這個計時器每三秒執行,經過十秒就執行clear這個計時器停止hello執行