php - 从当前页面加载时间到特定时间的剩余时间
Posted
技术标签:
【中文标题】php - 从当前页面加载时间到特定时间的剩余时间【英文标题】:php - Time remaining until specific time from current time of page load 【发布时间】:2011-08-19 21:15:06 【问题描述】:我不得不承认,我什至没有尝试自己编写这个问题,这个问题可能会让某些人感到恼火,但我很惊讶我无法在网络上找到我正在尝试的好例子去做。也许我只是在搜索中没有使用正确的关键词。
我正在尝试计算从现在(页面加载时间)到特定日期和时间(例如 2011 年 5 月 11 日星期三下午 12:00)的剩余时间并显示它。我原以为很容易找到一个 sn-p 来完成这项工作,但到目前为止还没有运气。有没有人有一些他们以前用来完成此任务的示例代码?我不希望有人从头开始为我写这篇文章,但如果我至少能指出正确的方向,那将非常有帮助。
【问题讨论】:
【参考方案1】:我会使用 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 的操作。
【讨论】:
不过要小心,因为这仅在 5.2+ 中可用 它不适用于已过世的日期。现在 - 过去,应该说 0 天,0 秒等,但它不是 使用 if($future_date 我正在考虑使用此代码,但作为菜鸟,DateInterval() 在哪里使用?我只看到对 DateTime() 的引用【参考方案2】:我觉得会有用
$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: $daysd $hoursh $minutesm $secondss<br/>\n";
echo "Expected: 7d 0h 0m 0s<br/>\n";
echo "time isss".time();
echo $date = date('Y-m-d H:i:s')";
?>
【讨论】:
【参考方案3】:首先,您需要使用time()
和strtotime()
计算以秒为单位的差异。然后您可以将这些秒数转换为天/小时/分钟/秒。
【讨论】:
以上是关于php - 从当前页面加载时间到特定时间的剩余时间的主要内容,如果未能解决你的问题,请参考以下文章