###### tags: `js` `time` # js 時間大全 w3C文件:https://www.w3school.com.cn/jsref/jsref_obj_date.asp 外掛(不用自己+1、補0):https://momentjs.com/ </br> ### new Date() 目的:獲得當下時間 型別:object 其他 method 看 w3c 文件,<font color="#f00"> 需注意起點為 0 or 1</font> ```javascript= new Date() // Sat Jul 23 2022 22:42:50 GMT+0800 (台北標準時間) ``` </br> ### string > object 寫法:new Date('時間字串') ```javascript= new Date('2022/07/01') // Fri Jul 01 2022 00:00:00 GMT+0800 (台北標準時間) ``` </br> ### 計算時間差 利用 getTime(),回傳 1970 年 1 月 1 日午夜 與 指定日期的 <font color="#f00">毫秒数</font> 之特性 ```javascript= var a = new Date('2022/07/01 10:00:00'), a_milliseconds = a.getTime(); var b = new Date('2022/07/01 10:00:01'), b_milliseconds = b.getTime(); console.log('兩個時間相差' , (b_milliseconds - a_milliseconds)/1000 , '秒' ) // 兩個時間相差 1 秒 ``` </br> ### 比較時間先後 用 <font style="background:#D0D0D0">></font> or <font style="background:#D0D0D0"><</font> 比較兩個時間 object 即可 ```javascript= var a = new Date('2022/07/01 10:00:00'); var b = new Date('2022/07/01 10:00:01'); console.log(b > a) // true ``` </br> ### 瀏覽器差異 chrome 在日期格式可用 <font style="background:#D0D0D0">/</font> or <font style="background:#D0D0D0">-</font> safari 只能使用 <font style="background:#D0D0D0">/</font> :::info 若要通用於兩個瀏覽器,建議都用 / ::: </br> ### 判斷「現在時間」是否在指定的時間區間 實務上非常實用,尤其做活動時常需判斷當下是否為活動時間 ```javascript= function isDuringDate(beginDateStr, endDateStr) { var curDate = new Date(), beginDate = new Date(beginDateStr), endDate = new Date(endDateStr); if (curDate >= beginDate && curDate <= endDate) { //do something } else console.log('not the Date') } isDuringDate('2022/07/01 00:00', '2022/07/31 23:59') ```