我不得不承认,自己甚至没有尝试过编码这个问题可能会让一些人烦恼但是我很惊讶我无法在网络上找到一个好的例子。我试着去做。也许我在搜索中没有使用正确的关键词。
我正在尝试计算从现在开始的剩余时间(页面加载的时间)到特定的日期和时间(例如,假设2011年5月11日星期三中午12:00)并显示它。我原本以为找到一个片段来实现这个目标很容易,但到目前为止还没有运气。有没有人有一些他们以前用来完成这个的示例代码?我不希望任何人从头开始为我写这个,但如果我至少可以指出正确的方向,那将是非常有帮助的。
答案 0 :(得分:46)
我会使用DateInterval和DateTime函数:
$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");
你需要一个至少5.3的PHP版本才能这样做 - 否则,做helloandre recommends。
答案 1 :(得分:3)
我认为它会有用
$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')";
?>
答案 2 :(得分:1)
首先,您需要使用time()
和strtotime()
计算秒数差异。然后,您可以将这些秒转换为天/小时/分钟/秒。