【JavaScript】時刻に関する正規表現について
Q&A
Closed
解決したいこと
00h00m00s
表記の時間の扱いに困っています。
2つ解決したいことがあります。
1つは0h00m00s
を00:00:00
といった表記にしたいです。
2つは以下の画像の右側に表示されている時間を取得し、sumの部分に合計を表示させるようにしたいのです。(この画像で言うとsum=6h03m00sといった感じ)
正規表現で取得を試みてもうまくいきませんでした。
初歩的な質問で申し訳ないのですが、わかる方がいたらご教示お願いいたします。
該当するソースコード
以下の{{.SubTime}}で時刻が1:00:00
だったら1h0m0s
で、0h0m5sだったら5s
というフォーマットで渡されるようになっています。
<div class="flex-content justify-content-space-between">
<span>{{.Date}}</span>
<!-- この下のsumにsubTimeの合計時間を表示したい。 -->
<span class="subtime-sum">sum</span>
</div>
<a id="openModal" class="task-a">
<div class="hidden">{{.ID}}</div>
<li>
<!-- 省略 -->
<span class="task-content__time">
<p class="task-content__time__subtime-{{.ID}}">{{.SubTime}}</p>
</span>
</li>
</a>
自分で試したこと
やったこととしてはわからないなりに正規表現をつかってh,m,sごとに数字を取得し、dのhourStr,minuteStr,secondStrに0埋めして代入する的なことを考えたのですがうまくいきませんでした。
const hourStr = subTime.match(/\d+\h/)
const minuteStr = subTime.match(/\d+m/)
const secondStr = subTime.match(/\d+s$/)
const d = new Date('2020-03-05T00:00:00');
var hourStr = d.getHours().toString().padStart(2, '0');
var minuteStr = d.getMinutes().toString().padStart(2, '0');
var secondStr = d.getSeconds().toString().padStart(2, '0');
console.log(hourStr + ":" + minuteStr + ":" + secondStr);
初歩的な質問で申し訳ないのですが、何卒ご教示の程よろしくお願いいたします。