2016-11-24 83 views
0

我有一個網站,我正在計算兩個輸入元素內輸入的兩次(Starttime Endtime)之間的小時和分鐘。結果保存在標籤內。在某個位置添加冒號到字符串

下面是一個例子:

Starttime: 08:00 
Endtime: 15:30 
TimeSpend: 7 hours 30 Minutes 

我需要的價值Timespend發回給我的後端,但不以這種形式。我想給它的形式,如:

7:30 

我過濾小時和分鐘內未能與這個JavaScript:replace(/[^0-9]/g,'');結果是730

我如何添加一個冒號7至30之間,讓看看 像:730 --> 7:30?同樣應該爲1120 --> 11:20工作。

+0

爲什麼不將計算更改爲想要的格式,而不是稍後更改爲新格式? –

+0

,因爲我必須像這樣顯示它 – TheWandererr

+0

當您顯示值時,保存您使用的原始值,而不是稍後從顯示中拉出它們。這是一個很好的例子,爲什麼你應該分開數據和表示。 – JJJ

回答

1

您可以將第二個正則表達式應用於timespend, IES最後兩個字符,並在前面插入一個冒號:

replace(/(.{2})$/,':$1'); 

工作例如:

var paragraphs = document.getElementsByTagName('p'); 
 

 
var timespend = '7 hours 30 Minutes'; 
 

 
paragraphs[0].textContent = timespend; 
 

 
timespend = timespend.replace(/[^0-9]/g,''); 
 

 
paragraphs[1].textContent = timespend; 
 

 
timespend = timespend.replace(/(.{2})$/,':$1'); 
 

 
paragraphs[2].textContent = timespend;
<p></p> 
 
<p></p> 
 
<p></p>

0

你可以把你

TimeSpend:7小時30分鐘

使用的strtotime()和日期(),如:

$time = "7 hours 30 Minutes"; 
echo date('H:i', strtotime($time)); 

輸出:09:42

0

試試這個我希望它能幫助。請參閱jsfiddle.net/4y6f1t25/並檢查

0

var timeInHourMinutes =「7小時30分鐘」;

var res = timeInHourMinutes.replace(「hours」,「:」);

res = res .replace(「minutes」,「」);

console.log(res);

相關問題