Всем доброго времени суток. Возник вопрос, как мне от текущего времени отнять время из бд? У меня есть табличка с типом Time
, там пока около 20 записей, мне нужно обсчитать, через сколько времени будет время
, которое записано в этой ячейке?
Например: Автобус отправляется в 12:43:00. Мне нужно узнать через какое время он отправиться(типа отправляется через 3:12:00). Все это дело нужно сделать на php
Тогда через strtotime
$todate = strtotime("now");
//$fromdate = $bus->getStartDateTime()->format('M d, Y H:i:s');
$fromdate = strtotime('03 June 2019 13:00:00 +3 GMT');
$calculate_seconds = $fromdate - $todate;
$days = floor($calculate_seconds / (24 * 60 * 60)); // convert to days
$timeInDays = $days * (24 * 60 * 60);
$hours = floor(($calculate_seconds - $timeInDays) / (60 * 60)); // convert to hours
$timeInHours = $hours * (60 * 60);
$min = floor(($calculate_seconds - $timeInDays - $timeInHours) / 60); // convert to min
echo($days . ' d. ' . $hours . ' h. ' . $min . ' m.');
Можно сделать через js. Просто передаешь полученное из БД значение в любой в нужный элемент и на выходи получишь результат с пересчетом в 1 сек. Грубо говоря таймер
<div id="countdown-timer"
data-time="<?php echo $bus->getStartDateTime()->format('M d, Y H:i:s'); ?>" >
var countdownTimer = $("#countdown-timer"),
countDownDate = new Date(countdownTimer.data('time')).getTime();
var intervalId = setInterval(function() {
var now = new Date().getTime();
var distance = countDownDate - now;
var days = Math.floor(distance / (1000 * 60 * 60 * 24)),
hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)),
minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)),
seconds = Math.floor((distance % (1000 * 60)) / 1000);
var remainingTime;
var formatTime = function (count, label) {
return "<span>" + count + "</span> <sub>" + _t(label) + ".</sub>"
}
if (days > 0) {
remainingTime = formatTime(days, 'd') + ' ' + formatTime(hours, 'h') + ' ' + formatTime(minutes, 'm');
} else if (days === 0 && hours !== 0 && minutes !== 0) {
remainingTime = formatTime(hours, 'h') + ' ' + formatTime(minutes, 'm') + ' ' + formatTime(seconds, 's');
} else if (days === 0 && hours === 0 && minutes !== 0) {
remainingTime = formatTime(minutes, 'm') + ' ' + formatTime(seconds, 's');
} else if (days === 0 && hours === 0 && minutes === 0) {
remainingTime = formatTime(seconds, 's');
} else {
clearInterval(intervalId);
remainingTime = '<div class=\"countdown-timer\">' + formatTime(0, 'h') + ' ' + formatTime(0, 'm') + '</div>';
}
$('#countdown-timer').html(function() {
$('#countdown-timer span.nbsp').remove();
return remainingTime;
});
}, 1000);
Если времени больше суток - 1 d. 12 h. 15 m. Менее суток - 16 h. 45 m. 15 s.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Пишу свой велосипед, который будет из себя представлять менеджер паролей для входа на сайты (да, знаю, что в браузерах есть куча готовых решений,...
Отправляю файлы (избражение, изображние в архиве) на сервер POST-запросомФайл приходит(данные появляются в $_FILES)