php - 从当前页面加载时间到特定时间的剩余时间

Vin*_*ent 11 php time

我不得不承认,自己甚至没有尝试自己编码这个问题可能会令一些人烦恼但我很惊讶我无法在网上找到一个我想要做的好例子.也许我只是在搜索中没有使用正确的关键词.

我正在尝试计算从现在开始的剩余时间(页面加载的时间)到特定的日期和时间(例如,比如2011年5月11日星期三中午12:00)并显示它.我原本以为找到一个片段来实现这个目标很容易,但到目前为止还没有运气.有没有人有一些他们以前用来完成这个的示例代码?我不希望任何人从头开始为我写这个,但如果我至少可以指出正确的方向,那将是非常有帮助的.

Jim*_*zuk 46

我使用DateIntervalDateTime函数:

$now = new DateTime();
$future_date = new DateTime('2011-05-11 12:00:00');

$interval = $future_date->diff($now);

echo $interval->format("%a days, %h hours, %i minutes, %s seconds");
Run Code Online (Sandbox Code Playgroud)

您需要一个至少为5.3的PHP版本才能这样做 - 否则,请执行helloandre建议的操作.

  • 它不适用于已经去世的日期.现在 - 过去,应该说0天,0秒等,但不是 (2认同)
  • 我正在考虑使用此代码,但作为菜鸟,在哪里使用DateInterval()?我只看到对DateTime()的引用 (2认同)

Lea*_*per 5

我认为这会有用

$startdate="2008-06-22 20:38:25"; 
$enddate="2008-06-29 21:38:49"; 

$diff=strtotime($enddate)-strtotime($startdate); 
echo "diff in seconds: $diff<br/>\n<br/>\n"; 

// immediately convert to days 
$temp=$diff/86400; // 60 sec/min*60 min/hr*24 hr/day=86400 sec/day 

// days 
$days=floor($temp); echo "days: $days<br/>\n"; $temp=24*($temp-$days); 
// hours 
$hours=floor($temp); echo "hours: $hours<br/>\n"; $temp=60*($temp-$hours); 
// minutes 
$minutes=floor($temp); echo "minutes: $minutes<br/>\n"; $temp=60*($temp-$minutes); 
// seconds 
$seconds=floor($temp); echo "seconds: $seconds<br/>\n<br/>\n"; 

echo "Result: {$days}d {$hours}h {$minutes}m {$seconds}s<br/>\n"; 
echo "Expected: 7d 0h 0m 0s<br/>\n"; 


echo "time isss".time();

echo   $date = date('Y-m-d H:i:s')";

?>
Run Code Online (Sandbox Code Playgroud)