在某个位置添加冒号到字符串

时间:2016-11-24 10:10:58

标签: javascript jquery

我有一个网站,我计算两次输入元素中输入的两次(开始时间结束时间)之间的小时和分钟。结果保存在标签内。

以下是一个例子:

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

4 个答案:

答案 0 :(得分:1)

您可以将第二个正则表达式应用于timespend,它标识最后两个字符并在前面插入一个冒号:

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>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您可以转换

  

TimeSpend:7小时30分钟

使用strtotime()和date(),如:

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

输出:09:42

答案 2 :(得分:0)

试试这个我希望它有所帮助。请参阅jsfiddle.net/4y6f1t25/并检查

答案 3 :(得分:0)

var timeInHourMinutes =&#34; 7小时30分钟&#34 ;;

var res = timeInHourMinutes.replace(&#34; hours&#34;,&#34;:&#34;);

res = res .replace(&#34;分钟&#34;,&#34;&#34;);

的console.log(RES);