2024年3月25日 星期一

自訂 Intl.DateTimeFormat 的格式

 自訂 Intl.DateTimeFormat 的格式

前言

  在之前的 調整 Intl.DateTimeFormat 的格式 示範如何調整格式,但都是常見的制式化格式,這些格式都不會顯示秒,如果要顯示秒就要靠訂定格式,在此把學習的過程做個紀錄。


內容

  範例如下

const date = new Date(Date.UTC(2020, 11, 20, 3, 23, 16, 738));
//
console.log(new Intl.DateTimeFormat('zh-tw',{
  dateStyle: 'short',
  timeStyle: 'short',
}).format(date));//2020/12/20 上午11:23
//
console.log(new Intl.DateTimeFormat('zh-tw',{
  weekday: 'long',
  year: 'numeric',
  month: 'long',
  day: 'numeric',
  hour: 'numeric',
  minute: 'numeric',
  second : 'numeric',
  fractionalSecondDigits: 3
}).format(date));//2020年12月20日 星期日 上午11:23:16.738


要自訂格式一樣是透過第二個參數,直接輸入要顯示的部分的參數即可,不只可以顯示秒,還可以顯示千分之一秒還有星期幾,這些是制式化格是不會顯示的,範例先示範制式化的格式,接著在示範這次的自訂格式,有一點是要注意的,制式化格式的參數 dateStyle 與 timeStyle ,式不可以跟自訂的參數混用的!只要混用就會報錯。


參考資料

[ developer.mozilla.org ] Intl.DateTimeFormat() constructor


相關文章與資料

初探 Intl.DateTimeFormat

調整 Intl.DateTimeFormat 的格式

2024年3月18日 星期一

關於 smart failure predicted 的處理

 關於 smart failure predicted 的處理

前言

  最近有硬碟損壞,開機時會出現 smart failure predicted ,本以為硬碟就這麼毀了,資料來不及複製有些可惜,但查了一下網路發現這個訊息不是指硬碟毀了,在此把學習的過程做個紀錄。


內容

   smart failure predicted 指的是 smart test 有問題,不是硬碟毀了,指的是硬碟"快"毀了,既然是"快"毀了代表其實它還沒毀壞,可以在 BIOS 裡把 smart test 的選項關閉後再試著開機,這樣就可以進到作業系統把"快"毀了的硬碟資料複製出來。具體的操作可以參照以下



雖然我的主機板也是 ASUS ,但 Smart test 的選項位置與影片中的選項不一樣,但只要記得找 smart test 這個字詞,它的選項會是開與關,把它設為關閉後就可以跳過 smart failure predicted ,解著就可以進到作業系統。這個"快"毀了的硬碟在複製時會和一般的硬碟差很多,有的時候複製很正常,有的檔案複製時會像卡住一樣要複製很久,我的 2T 硬碟複製 4 天還沒結束,如果要複製"快"毀了的硬碟要準備好可以長時間不關機的環境。


2024年3月11日 星期一

調整 Intl.DateTimeFormat 的格式

 調整 Intl.DateTimeFormat 的格式

前言

  在先前的 初探 Intl.DateTimeFormat 提到 Intl.DateTimeFormat 的基本用法,但只能顯示日期沒辦法顯示時間,要如何顯示時間呢?在此把學習的過程做個紀錄。


內容

  範例如下

const date = new Date(Date.UTC(2020, 11, 20, 3, 23, 16, 738));
//
console.log(new Intl.DateTimeFormat('zh-tw',{
  dateStyle: 'short',
  timeStyle: 'short',
}).format(date));//2020/12/20 上午11:23
//
console.log(new Intl.DateTimeFormat('zh-tw',{
  timeStyle: 'short',
}).format(date));//上午11:23
//
console.log(new Intl.DateTimeFormat('zh-tw',{
  dateStyle: 'short',
}).format(date));//2020/12/20
//
console.log(new Intl.DateTimeFormat('en-us').format(date));//12/20/2020
//
console.log(new Intl.DateTimeFormat('en-us',{
  dateStyle: 'short',
}).format(date));//12/20/20
console.log(new Intl.DateTimeFormat('en-us',{
  dateStyle: 'medium',
}).format(date));//Dec 20, 2020


要顯示時間可以透過 Intl.DateTimeFormat() 的第二個參數來達成,第二個參數可以輸入 dateStyle 與  timeStyle ,兩個參數各別都可以輸入 short 、medium 、 long 與 full ,按字面上的意思就可以知道效果,範例開頭透過都輸入 short ,就可以得到同時有日期與時間的結果,如果只需要時間,就只輸入 timeStyle 參數,就可以得到只顯示時間的結果,同理,如果只顯示日期的話就只輸入 dateStyle 即可。

  範例最後三個使用是在說明在不輸入參數的顯示沒被法透過透過固定的 dateStyle  與 timeStyle  來取得 ,不輸入參數時是 12/20/2020 ,但不論 dateStyle 輸入 short 或 medium 都無法得到何不輸入的參數同樣結果。


參考資料

[ developer.mozilla.org ] Intl.DateTimeFormat() constructor


相關文章與資料

初探 Intl.DateTimeFormat


2024年3月4日 星期一

初探 Intl.DateTimeFormat

 初探 Intl.DateTimeFormat

前言

  如果時間格式需要在地化時要如何做呢? JavaScript 本身提供在地化的方法,也就是 Intl.DateTimeFormat() ,在此把學習的過程做個紀錄。


內容

  範例如下

const date = new Date(Date.UTC(2020, 11, 20, 3, 23, 16, 738));
console.log(new Intl.DateTimeFormat('en-US').format(date));//12/20/2020
console.log(new Intl.DateTimeFormat('zh-tw').format(date));//2020/12/20
console.log(new Intl.DateTimeFormat('fr').format(date));//20/12/2020


使用 Intl.DateTimeFormat() 的方式很簡單,用 new 方式來喚起!並輸入要在地化的區域碼,再對創建的物件喚起 format() 並輸入要在地化的時間,就可以得到在地化的結果,範例的美國時間順序是"月/日/年",台灣是"年/月/日",最後法國是 "日/月/年"。


參考資料

[ developer.mozilla.org ] Intl.DateTimeFormat