可以說我有這種格式的電視節目的開始時間和持續時間:10:05
。
我想要做的是當某人輸入程序數據並輸入程序的開始時間和持續時間時,我的代碼將它們加在一起並自動填充下一個程序的開始時間。使用JavaScript處理格式化時間
我試圖將這些時間轉換爲秒,然後操作後再次將它們轉換爲格式化時間,但我不知道該怎麼做。
function processTime(time) {
if (typeof time !== 'undefined') {
var times = time.split(":");
var minutes = times[0];
var seconds = times[1];
seconds = parseInt(seconds, 10) + (parseInt(minutes, 10) * 60);
} else {
var seconds = null;
}
return seconds;
}
function createTime(timestamp) {
var output;
if (typeof timestamp !== 'undefined') {
// Problem is here, my timestamp is not standard unix timestamp
var time = new Date(timestamp * 1000);
var minutes = time.getMinutes();
var seconds = time.getSeconds();
output = minutes + ":" + seconds;
}
return output;
}
$progForm.delegate(".program-duration", 'keyup', function() {
$(this).on('focusout', function() {
var duration = processTime($(this).val());
var startTime = processTime($(this).parent().prev().find(".program-time").val());
if (duration && typeof duration !== 'undefined' && startTime && typeof startTime !== 'undefined') {
var nextStart = duration + startTime;
var $nextProgramTime = $(this).parent().parent().next().find(".program-time");
if (parseInt($nextProgramTime.val()) < 1) {
$nextProgramTime.val(createTime(nextStart));
}
}
});
});
<form>
<table>
<tbody class="programs-inputs">
<tr>
<td><input type="text" class="program-time timepicker input-mini" name="programs[time][]" placeholder="00:00" /></td>
<td><input type="text" class="program-duration timepicker input-mini" name="programs[duration][]" placeholder="00:00" /></td>
</tr>
<tr>
<td><input type="text" class="program-time timepicker input-mini" name="programs[time][]" placeholder="00:00" /></td>
<td><input type="text" class="program-duration timepicker input-mini" name="programs[duration][]" placeholder="00:00" /></td>
</tr>
</tbody>
</table>
</form>
您可以顯示您的嘗試? – 2013-04-22 21:47:50
@Kolink在這裏。 – 2013-04-22 21:52:22
你有沒有日期(不僅是時間)? – Bergi 2013-04-22 21:52:33