Я пытаюсь создать таймер, который на 1 час из временной метки показывает обратный отсчет, а затем показывает кнопку формы, но я не могу заставить ее работать, я пробовал несколько методов, которые я нашел в Интернете, но они либо отображают неправильное время или никогда не показывать форму. Вот что у меня так далеко:
while($row2 = $result2->fetch_assoc()) {
$timestamp = $row2['timestamp'];
$work_id = $row2['work_id'];
$current_time = date("Y-m-d H:i:s");
$ready_time = date("Y-m-d H:i:s", strtotime($timestamp)+3600);
if($current_time > $ready_time){?>
<form action="" method="POST" onsubmit="return confirm('Are you sure?');">
<input type="hidden" value="<?echo $work_id;?>" name="work_id">
<input type="submit" name="submit" value="Complete Workorder">
</form>
?
}else{
$time1 = new DateTime($current_time);
$time2 = new DateTime($timestamp);
$interval = $time1->diff($time2);
echo $interval->d ." Days ". $interval->h . " Hours, " . $interval->i." Mintues, ".$interval->s." seconds";
}
}
Вы можете рассчитать время, оставшееся в вашем sql:
SELECT work_id, TIMESTAMPDIFF(SECOND,CURRENT_TIMESTAMP(),`timestamp`) AS timeleft
FROM tablename
Затем проверьте это значение в вашем php:
$timeleft = $row2['timeleft'];
$work_id = $row2['work_id'];
if($timeleft >=0): ?>
<form action="" method="POST" onsubmit="return confirm('Are you sure?');">
<input type="hidden" value="<?echo $work_id;?>" name="work_id">
<input type="submit" name="submit" value="Complete Workorder">
</form>
<?php else: ?>
<p>You need to wait <?php echo $timeleft;?> seconds</p>
<?php endif;
Если вы хотите свернуть обратный отсчет, который фактически обновляется без обновления, вам нужно будет использовать javascript вместо <p>You need to wait <?php echo $timeleft;?> seconds</p>
Других решений пока нет …