Day.js 是一個 輕量級的日期與時間處理庫,用於在 JavaScript 中進行日期與時間的解析、格式化、操作和顯示。它的 API 設計靈感來自 Moment.js,但體積更小、效能更高,並且完全相容於 ES6 模組。 [官方連結](https://day.js.org/en/) ### 與 Moment.js 的比較 ![螢幕擷取畫面 2024-11-19 174818](https://hackmd.io/_uploads/rJ1-119fyl.png) ### 基本用法 獲取當前的時間: ```js const now = dayjs(); console.log(now.format()); // 例如: 2024-11-19T10:30:45+08:00 ``` 格式化日期: ```js const date = dayjs(); console.log(date.format("YYYY-MM-DD")); // 2024-11-19 console.log(date.format("dddd, MMMM D, YYYY")); // Tuesday, November 19, 2024 ``` 日期加減操作: ```js const date = dayjs(); console.log(date.add(7, "day").format("YYYY-MM-DD")); // 加 7 天 console.log(date.subtract(3, "month").format("YYYY-MM-DD")); // 減 3 個月 ``` 比較日期: ```js const date1 = dayjs("2024-01-01"); const date2 = dayjs("2025-01-01"); console.log(date1.isBefore(date2)); // true console.log(date1.isAfter(date2)); // false console.log(date1.isSame("2024-01-01")); // true ``` 計算差距: ```js const date1 = dayjs("2024-01-01"); const date2 = dayjs("2025-01-01"); console.log(date2.diff(date1, "day")); // 366 天 (因為 2024 是閏年) console.log(date2.diff(date1, "month")); // 12 個月 ``` ## 題目 請複製 (右下角 fork)這個[範例](https://codepen.io/yen-kg/pen/LYwvrdx?editors=0111),利用 Day.js 的方式取得現在的時間,並且轉換成此時間格式:`2024-11-17 20:05:40`,以及取得一週後的日期。 ## 回報流程 將答案寫在 CodePen 並複製 CodePen 連結貼至底下回報就算完成了喔! 解答位置請參考下圖(需打開程式碼的部分觀看) ![](https://i.imgur.com/vftL5i0.png) <!-- 解答: ``` const dayjs = window.dayjs; const App = () => { const now = dayjs(); const formattedTime = now.format("YYYY-MM-DD HH:mm:ss"); const oneWeekLater = now.add(7, "day").format("YYYY-MM-DD"); return ( <div style={{ textAlign: "center", marginTop: "50px", fontFamily: "Arial" }}> <h1>React + Day.js 範例</h1> <p>當前時間:<strong>{formattedTime}</strong></p> <hr /> <p>一週後的日期:<strong>{oneWeekLater}</strong></p> </div> ); }; const root = ReactDOM.createRoot(document.getElementById("root")); root.render(<App />); ``` --> 回報區 --- | # | Discord | CodePen / 答案 | |:---:|:-------------- |:----------------------------------------------------------------------------- | | 1 | Noy(Toad) | [Codepen](https://codepen.io/MochiCodingPen/pen/ZYEEYPR) | | 2 | Sonia | [Codepen](https://codepen.io/YUJOU/pen/qEBBXqM?editors=0011) | |3|Hailey|[CodePen](https://codepen.io/sxbokfja-the-flexboxer/pen/jEOOvWq?editors=0011)| | 4 | 4chan| [Codepen](https://codepen.io/ijuolaqc-the-looper/pen/QwWWVEN) | | 5 | Amanda | [Codepen](https://codepen.io/cym199922/pen/JojjaWZ) | | 6 | Nocab | [Codepen](https://codepen.io/PeihanWang/pen/gbOOdaJ?editors=1011) | | 7 | 毛巾 | [Codepen](https://codepen.io/bqdcjboa-the-solid/pen/NPWWLBb) | 8 | Aaron 謝宗佑 | [Codepen](https://codepen.io/aaron-hsieh/pen/NPWWQeb)| | 9 | ya_meow | [Codepen](https://codepen.io/gkfxzvcb-the-bashful/pen/VYwYmde?editors=0010)| | 10 |邵|[Codepen](https://codepen.io/ukscrlno-the-typescripter/pen/Eaxammr?editors=0011)| | 10 | Kaya |[Codepen](https://codepen.io/kayaribi/pen/gbObxxN)| | 11 | 嚼勁先生 |[Codepen](https://codepen.io/James520284/pen/QwWwMXp)| | 12 | mercury2508. | [Codepen](https://codepen.io/Mercury2508/pen/gbObGVx) | | 13 | Jasmine | [Codepen](https://codepen.io/Jasmine-Lin-the-vuer/pen/mydyooK) | | 14 | Clove | [Codepen](https://codesandbox.io/p/sandbox/ynmgwj) | | 15 | Johnson | [Codepen](https://codepen.io/crpbugqy-the-typescripter/pen/WbNvPZp) | | 16 | 泊岸 | [Codepen](https://codepen.io/qoq77416416/pen/raNOWBw?editors=0011) | | 17 | Toung | [Codepen](https://codepen.io/Toung/pen/dPyRRRG) | | 18 | 姜承 | [Codepen](https://codepen.io/Troy0718/pen/bNGxPaR?editors=0011) | | 19 | jinliu214 | [Codepen](https://codepen.io/jinliu214/pen/dPobYQZ?editors=0011) | | 20 | chris | [Codepen](https://codepen.io/chris-chen-the-selector/pen/LEVvZzp?editors=0111) | | 21 | shin_kai | [Codepen](https://codepen.io/KAI-SHIN-the-animator/pen/wBMgexe) | --- - 快速複製格式: ```markdown! | 0 | user | [Codepen]() | ```