簡體   English   中英

從時間格式中刪除前導零

[英]Remove leading zeros from time format

我收到格式為'HH:mm:ss'的字符串。 我想刪除前導零,但始終保留最后四個字符,例如m:ss即使m為零。 我正在格式化音頻持續時間。

例子:

00:03:15 => 3:15
10:10:10 => 10:10:10
00:00:00 => 0:00
04:00:00 => 4:00:00
00:42:32 => 42:32
00:00:18 => 0:18
00:00:08 => 0:08

您可以使用此替換:

var result = yourstr.replace(/^(?:00:)?0?/, '');

演示

或更好:

var result = yourstr.replace(/^0(?:0:0?)?/, '');

演示


要處理 Matt 示例(請參閱評論),您可以將模式更改為:

^[0:]+(?=\d[\d:]{3})

另一種選擇是使用 moment.js 庫。

這支持格式,例如

var now = moment('1-1-1981 2:44:22').format('h:mm:ss');
alert(now);

http://jsfiddle.net/8yqxh5mo/

如果您使用 1 h 而不是 2,您將不會獲得前導 0。

時:分:秒

你可以這樣做:

 var tc =['00:03:15', '10:10:10','00:00:00','04:00:00','00:42:32','00:00:18','00:00:08']; tc.forEach(function(t) { var y = t.split(":"); y[0] = y[0].replace(/^[0]+/g, ''); if(y[0] === '') { y[1] = y[1].replace(/^0/g, ''); } var r = y.filter(function(p) {return p!=='';}).join(':'); console.log(r); });

將時間分成 3 部分。 從第一部分中刪除前導零,如果第一部分為空,則從第二部分中刪除前導零,否則保留它。 然后加入所有這些丟棄空字符串。

當簡單地用一個小的 'h' moment(date).format('h:mm A')從 time 中刪除第一個數字時,我遇到了 ZUL time 的問題:

我的const arrivalTime = "2022-07-21T12:10:51Z"

const result = moment(arrivalTime).format(('h:mm A')) // 2:10 PM

解決方案是將其轉換為 ISO 格式,然后格式化:

const arrivalTimeIsoFormat = arrivalTime.toISOString()
const result = moment(arrivalTimeIsoFormat, "YYYY-MM-DDTHH:mm:ss.SSS").format(('h:mm A')) // 12:10 PM

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM