php时间搞砸了

Posted

技术标签:

【中文标题】php时间搞砸了【英文标题】:php time messed up 【发布时间】:2011-08-17 23:07:20 【问题描述】:

我需要帮助在 php 中创建倒数计时器。 问题是我想在我的数据库中存储一个 INT,这将是几秒钟, 并且这个 int 将被添加到当前时间以表示未来时间。

现在,如果我尝试从未来时间中减去当前时间以显示剩余的秒数,那么日期会出错。

这是我的架构

mysql> desc 建筑物; +-----------+-------------+------+-----+---------+ ----------------+ |领域 |类型 |空 |钥匙 |默认 |额外 | +-----------+-------------+------+-----+---------+ ----------------+ |编号 |整数(11) |否 |优先级 |空 |自动增量 | |姓名 | varchar(20) |是 | |空 | | |水平 |整数(2) |是 | |空 | | |创建 |整数(11) |否 | |空 | | |完成|整数(11) |是 | |空 | | | player_id |整数(11) |是 |穆尔 |空 | | |职位 |整数(2) |是 | |空 | | +-----------+-------------+------+-----+---------+ ----------------+

这是要检查的代码

//开始会话; //连接数据库; $query = "选择创建,从 id = 1 的建筑物完成"; $query = mysql_query($query) or die ("could not query ".mysql_error() ); 而($row = mysql_fetch_assoc($query)) $created = $row['created']; $finished = $row['finished']; $CurrentTime = time(); $status = $finished - $CurrentTime; $realstatus = date("H:i:s",$status); 如果($状态> 0) echo "正在建设中,仍然是 ".$realstatus." to finsih"; 别的 die("构造完成"); //echo $created."".$finished; ?>

任何帮助将不胜感激。

【问题讨论】:

显示一些代码并描述您期望的结果,以及您得到的结果。 您在数据库中存储当前时间的列类型和格式是什么? 您是从另一个中减去一个unix时间戳并使用mktime进行转换吗? 减去两个 unix 时间戳(以秒为单位)将得出这两个时间戳之间的秒数,而不是另一个日期。 @shmeeps 会做我的好人 :) 【参考方案1】:

您的问题是您要减去两个时间戳并将结果格式化为日期。结果不是日期,而是两个日期之间的间隔。

如果您想知道还剩多少小时/分钟/秒,您只需将结果除以 $status 除以 3600 / 60 / 1(除以小时,然后将余数除以分钟等)。

【讨论】:

【参考方案2】:

如果没有看到您的代码,无法提供太多答案,但也许这会提供一些见解:

<?php
    $fmt = 'Y-m-d H:i.s';                            // date formatting
    $now = time();                                   // current time
    $offset = 600;                                   // future offset
    $future = strtotime('+' . $offset . ' seconds'); // future time using relative time
    $timeleft = $future - $now;                      // time left in seconds

    // echo results
    echo 'Current Time: ' . date($fmt, $now) . PHP_EOL;
    echo 'Event Time: ' . date($fmt, $future) . PHP_EOL;
    echo 'Time Until Event: ' . $timeleft . ' seconds' . PHP_EOL;
?>

输出:

Current Time: 2011-05-03 12:00.15
Event Time: 2011-05-03 12:10.15
Time Until Event: 600 seconds

【讨论】:

以上是关于php时间搞砸了的主要内容,如果未能解决你的问题,请参考以下文章

.htaccess 搞砸了 .php 扩展名?

一个字符搞砸了 htaccess

PHP 字符串到URL生成器 - 搞砸了

会话在外部主机上搞砸了

gprof 搞砸了

UITableViewCell 重用后 topLayoutGuide 搞砸了