【发布时间】:2011-12-12 14:38:49
【问题描述】:
大家好,我正在尝试在 php 中计算经过的时间。问题不在于 php,而在于我的数学技能。例如: 时间:11:35:20 (hh:mm:ss),现在说当前时间是:12:00:45 (hh:mm:ss) 然后我的公式中的时间差给出输出:1 :-34:25。实际上应该是:25:25
$d1=getdate();
$hournew=$d1['hours'];
$minnew=$d1['minutes'];
$secnew=$d1['seconds'];
$hourin = $_SESSION['h'];
$secin = $_SESSION['s'];
$minin = $_SESSION['m'];
$h1=$hournew-$hourin;
$s1=$secnew-$secin;
$m1=$minnew-$minin;
if($s1<0) {
$s1+=60; }
if($s1>=(60-$secin)) {
$m1--; }
if($m1<0) {
$m1++; }
echo $h1 . ":" . $m1 . ":" . $s1;
有什么帮助吗?
编辑
对不起,我可能不得不添加页面每秒刷新一次以显示新的经过时间,所以我必须使用上面的方法。我很抱歉没有正确解释。
【问题讨论】:
-
考虑用
mktime()转换成时间戳,然后做简单的减法。在这种情况下,使用time()而不是getdate()可能是个好主意。 -
如果您使用的是逆向方法?您知道用户登录然后显示某种试用的时间吗?
-
谢谢大家的回复,在查看了以下所有答案后,我终于让它工作了:` if($s1=(60-$secin)) { $m1--; } if($m1