我有一个来自json的特殊时间格式,例如: 07_23 表示 07:00 - 23:00 ,当它显示 24 时,例如: 07_24 它应该更改为 07:00 - 23:59 。
我的代码在这里:
$(document).ready(function () {
var json = [{"name":"Meee","time":"07_24"}];
for (var i = 0; i < json.length; i++) {
tr = $('<tr/>');
tr.append("<td>" + json[i].name + "</td>");
tr.append("<td>" + json[i].time + ":00" + "</td>");
$('table').append(tr);
$("td:contains('_')").text($("td:contains('_')").text().replace('_', ':00-'));
$("td:contains('24')").text($("td:contains('24')").text().replace('24:00', '23:59'));
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<table>
<tr>
<th>Name</th>
<th>Time</th>
</tr>
</table>
我认为我的代码有点愚蠢,有没有最好的方法可以删除 07_24 下划线,为每个数字添加:00 ,然后更改 24 到 23:59 ?或者我可以使用正则表达式来实现这个目标吗?
答案 0 :(得分:1)
正如@Spencer Wieczorek在评论中提到的..你的代码很好..但是如果你需要简化一点......或者只是需要知道另一种方法来做到这一点
.artists table img{
width: 100%;
}
答案 1 :(得分:0)
http://jsfiddle.net/xfdqj6oo/2/
var formatTime = function(time) {
return time.split('_').map(function(hour) {
return hour === '24'? '23:59': hour + ':00';
}).join('-');
}
$(document).ready(function () {
var json = [{"name":"Meee","time":"07_24"}];
for (var i = 0; i < json.length; i++) {
tr = $('<tr/>');
tr.append("<td>" + json[i].name + "</td>");
tr.append("<td>" + formatTime(json[i].time) + "</td>");
$('table').append(tr);
}
});
基本上有一个功能可以处理时间格式化/转换。
答案 2 :(得分:0)
您可以编写一个非常简单的正则表达式来执行此操作:
var new_string = "some string 07_23 bla bla".replace(/([0-2][0-9])_24/g,"$1:00-23:59").replace(/([0-2][0-9])_([0-2][0-9])/g,"$1:00-$2:00");
输出&#34; bla bla some string 07:00-23:00 bla bla&#34;
答案 3 :(得分:0)
您始终更改相同的部分,因此不必使用正则表达式。因为你只需要将_改为:00-和24:00改为23:59它是常数,所以你不需要正则表达式。