この形式のテレビ番組の開始と継続時間があるとしましょう: 10:05
.
私がやりたいことは、誰かがプログラム データを入力しているときに、プログラムの開始時間と期間を入力すると、コードがそれらを合計して、次のプログラムの開始時間を自動的に埋めることです。
これらの時間を秒に変換してから、操作後にフォーマットされた時間に再度変換しようとしていましたが、どうすればそれができるかわかりません。
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>