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 - 从当前页面加载时间到特定时间的剩余时间的主要内容,如果未能解决你的问题,请参考以下文章

如何从另一个页面加载 .php 页面并加载动态内容

页面在获取当前位置时未加载

如何从 iframe 获取当前页面加载的 url [重复]

将特定元素从 XML 加载到 textbox/combobox/NumericUpDown

使用 MySQL 从表中获取特定列表,然后获取剩余的列表

IFRAME 中的 PHP“标头(位置)”,加载到 _top 位置?