最近發現串接的 API 有這種格式"P3Y6M4DT12H30M5S"
第一次看到這種好奇是什麼東西
發現是一個標準格式 ISO 8601 duration
1 | PnYnMnDTnHnMnS |
“P3Y6M4DT12H30M5S” 就表示 “3年6個月4天12小時又30分5秒”,
看這麼一連串字,覺得很難看到
但其實舊時一個英文搭配數字組合方式
現成 Library
momentjs
1 | moment.duration('P3Y6M4DT12H30M5S','minutes').toString(); |
Duration missing features · Issue #463 · moment/moment
換成好看的時間
1 | moment.utc(moment.duration('P3Y6M4DT12H30M5S').asMilliseconds()).format("HH:mm"); |
Format a moment duration as Hours and Minutes · TCS Blog
Java
java.time.Duration
生活記事簿: Parse ISO 8601 duration 的方法
PHP
PHP: DateInterval::__construct - Manual
1 |
|
PHP: DateInterval::format - Manual
另外 DB 要怎麼紀錄這種資料呢?
What MySQL datatype to store a PHP DateInterval - Stack Overflow
這邊裡面有提到用 varchar
但我覺得存 int 會比較好
先記錄到這邊,有發現好用的在紀錄