2016-11-24 126 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);