Php 如何以天/分/秒为单位计算unix时间戳?
我有一个脚本来比较登录日期/时间和注销日期/时间,然后将这两个值之间的差异添加到MSSQL 2005表的totaltime列中。例如:如果用户仅联机几秒钟,它将添加大约98 unix时间戳的值。那么,如果可能的话,如何在网站上以人工阅读的方式显示该值:天/分/秒 非常感谢你检查我的问题。如果能帮助我,我将不胜感激 这是我的排名脚本,我想包括:Php 如何以天/分/秒为单位计算unix时间戳?,php,timestamp,Php,Timestamp,我有一个脚本来比较登录日期/时间和注销日期/时间,然后将这两个值之间的差异添加到MSSQL 2005表的totaltime列中。例如:如果用户仅联机几秒钟,它将添加大约98 unix时间戳的值。那么,如果可能的话,如何在网站上以人工阅读的方式显示该值:天/分/秒 非常感谢你检查我的问题。如果能帮助我,我将不胜感激 这是我的排名脚本,我想包括: function TotalTimeRank() { $db = $this->database[GDB]; $num_rows =
function TotalTimeRank()
{
$db = $this->database[GDB];
$num_rows = $db->doQuery('SELECT TOP 100 ID, Name, (SELECT SUM(CoolPoint) FROM DATA WHERE DATA.User = INFO.User AND DATA.Auth IN(1, 2)) as Points FROM INFO WHERE INFO.User NOT IN (1199,16300) ORDER BY Points DESC');
if ($num_rows == -1)
{
$db->getError();
return;
}
$n = 1;
$content = '';
while ($row = $db->doRead())
{
$data = array('rank-id' => $row['Num'], 'rank-pos' => $n++, 'rank-name' => $row['Name'], 'rank-points' => number_format(intval($row['Points'])));
$content .= Template::Load('pointrank-' . ($n % 2 == 1 ? 2 : 1), $data);
}
$this->content = Template::Load('total_pointrank', array('ranks' => $content));
}
那么,将我想要的内容包含到上面的脚本中,以便根据我的
数据表中的totaltime
列显示每个用户的在线总时间,最好的方法是什么?我知道如何将其包括在内,但我对如何将其转换为上述函数中的人工阅读感到困惑。
这应该适合您的需要:
$timestamp_diff = 456; // your timestamp difference here
echo secondsToTime($timestamp_diff);
这个功能是:
function secondsToTime($seconds) { // returns days/hours/minutes/seconds
$dtF = new DateTime("@0");
$dtT = new DateTime("@$seconds");
return $dtF->diff($dtT)->format('%a/%h/%i/%s');
}
基于
编辑:将其与现有脚本放在一起:
(我想是吧?)
是的,用脚本更新了我的帖子,我想把总时间包括进去。这可能会对你有所帮助:这只是数学。时间戳=秒。开始分裂。e、 g.
61->1分1秒
谢谢,但我无法成功实现上述脚本的类似功能。这实际上是我的问题。不过,我把我的主要帖子和我的脚本放在了我想放进去的地方。我知道如何显示数字,但不确定如何在上面的函数中将其转换为人类阅读。如果你能在这方面帮助我,我将不胜感激。谢谢,谢谢。我已经编辑了一点,包括我自己的格式等。非常感谢,答案是100%接受+1投赞成票。再次感谢!好的,很好,你用期望的输出完成了。我用天/分/秒编辑:格式(“%a/%i/%s”)
function TotalTimeRank()
{
$db = $this->database[GDB];
$num_rows = $db->doQuery('SELECT TOP 100 ID, Name, (SELECT SUM(CoolPoint) FROM DATA WHERE DATA.User = INFO.User AND DATA.Auth IN(1, 2)) as Points FROM INFO WHERE INFO.User NOT IN (1199,16300) ORDER BY Points DESC');
if ($num_rows == -1)
{
$db->getError();
return;
}
$n = 1;
$content = '';
while ($row = $db->doRead())
{
$data = array('rank-id' => $row['Num'], 'rank-pos' => $n++, 'rank-name' => $row['Name'], 'rank-points' => $this->secondsToTime(intval($row['Points'])));
$content .= Template::Load('pointrank-' . ($n % 2 == 1 ? 2 : 1), $data);
}
$this->content = Template::Load('total_pointrank', array('ranks' => $content));
}
function secondsToTime($seconds) { // returns days/minutes/seconds
$dtF = new DateTime("@0");
$dtT = new DateTime("@$seconds");
return $dtF->diff($dtT)->format('%a/%i/%s');
}