2个时间戳到倒计时之间的差异

时间:2015-07-12 22:38:48

标签: javascript php datetime time

我有一个事件表,它有一个start_time并且正在保存unix时间。我想根据服务器时间在我的网站上显示倒计时,因此倒计时不依赖于用户当地时间。 我得到了开始时间并按服务器上的当前时间减去它:

$diff= $upc_tourn['start_t'] -time();

但我不确定如何根据此差异向我的用户显示倒计时。 我希望输出是这样的:

2 days 10:25:30

1 个答案:

答案 0 :(得分:0)

以下是我提出的问题。这是一个快速的功能,您可以根据自己的喜好进行简化和扩展。

这是 FIDDLE

<?php

$diff= (time() + 172600) - time(); // replace (time() - 172600) with your time in the future.

function timedifftostr($timediff) {
  $days = floor($timediff / (60*60*24));
  $days_raw = $days * (60*60*24);
  $hours = floor(($timediff-$days_raw) / (60*60));
  $hours_raw = $hours * (60*60);
  $minutes = floor(($timediff-($hours_raw + $days_raw)) / (60));
  $minutes_raw = $minutes * (60);
  $seconds = floor($timediff-($hours_raw + $days_raw + $minutes_raw));
  $seconds_raw = $seconds;

  echo $days." Day/s ".str_pad($hours,2,0).":".str_pad($minutes,2,0).":".str_pad($seconds,2,0);
}
timedifftostr($diff);
?>

你可以进一步扩展这一点,添加一个多天的支票,并将s或不添加到白天。提供的答案很长,以便在将来为您展示这项工作。下面我提供了数学的快速分解。

  time() is in seconds.
  So time()/60 is time in minutes.
  So time()/60/60 is time in hours.
  So time()/60/60/24 is time in days.