Мне было интересно, как лучше всего вычислить разницу во времени отныне до определенной точки, скажем, время обратного отсчета.
У меня есть аукцион, у которого есть близость в определенный момент, на этот раз хранится в записи MySQL в формате "DATETIME 00-00-000 00:00:00". Эта запись называется closetime.
Теперь на моем веб-сайте у меня есть код JavaScript, который получает это время через файл PHP. JavaScript повторяется каждую секунду, используя setInterval 1000
. PHP файл получает время от db и отправляет его обратно в этом формате
strtotime($result['closetime']);
И я получаю время запроса, я хочу использовать время сервера, а не время в JavaScript, потому что часы пользователя могут быть отключены.
strtotime(date("H:i:s", $_SERVER['REQUEST_TIME']))
Я возвращаю эти две метки времени и вычисляю разницу во времени между ними в JavaScript. Я использую эту функцию для этого, значения, отправленные с PHP, я вызываю currentTime и closeTime, я думаю, что это должно быть ясно.
function auctionDelayTime(currentTime,closeTime){
totaldelay = closeTime - currentTime;
if(totaldelay <= 0){
return 'ended';
}else{
if( days=parseInt((Math.floor(totaldelay/86400))) )
totaldelay = totaldelay % 86400;
if( hours=parseInt((Math.floor(totaldelay/3600))) )
totaldelay = totaldelay % 3600;
if( minutes=parseInt((Math.floor(totaldelay/60))) )
totaldelay = totaldelay % 60;
if( seconds=parseInt((Math.floor(totaldelay/1))) )
totaldelay = totaldelay % 1;
return hours+':'+formatTimes(minutes)+':'+formatTimes(seconds);
}
}
function formatTimes(value){
return value < 10 ? '0'+value : value;
}
Я думаю, что это очень много кода, делайте что-то настолько простое. У кого-нибудь есть лучшее решение или, возможно, более "красивый" код.
Наслаждайтесь!