2011-05-05 142 views
4

所有,转换Unix的时间戳小时

我有一个实际计算从测验开始到当前时间时花费的时间数据库字段。这是在某个时间点(记录为当前时间),现在我有一个Unixtimestamp值

即假设开始时间是5/5/2011 1pm和当前时间填充在5/5/2011 2pm。所以差异计算并存储为Unix时间戳。

现在我不知道这是什么时候实际完成,现在我不得不恢复到参加测验的时间。所以这里的Unix时间戳需要转换回小时,在这种情况下返回1小时。任何人都可以请帮我理解如何做到这一点?

+1

我不完全清楚。一个真正的时间戳将是自1970年1月1日以来的秒数。两个时间戳之间的差异应该是秒数,而不是实际的时间戳。如果这就是你刚刚除以3600得到小时。 – Cfreak 2011-05-05 22:05:08

回答

8

你有秒,所以才这样做

SELECT secondsField/3600 as 'hours' FROM tableName 
+0

这不是PHP,标记的类别是'PHP'。不会帮助未来的游客 – 2014-02-25 06:38:32

+0

你低估了错误的人。这个问题并没有提到或暗示PHP。该标签是错误的,应该是“sql”。 – 2014-02-25 10:58:30

1

这里找到天两个时间戳之间的差异的一个例子。

//Get current timestamp. 
$current_time = time(); 

//Convert user's create time to timestamp. 
$create_time = strtotime('2011-09-01 22:12:55'); 

echo "Current Date \t".date('Y-m-d H:i:s', $current_time)."\n"; 
echo "Create Date \t".date('Y-m-d H:i:s', $create_time)."\n"; 

echo "Current Time \t ".$current_time." \n"; 
echo "Create Time \t ".$create_time." \n"; 

$time_diff = $current_time - $create_time; 
$day_diff = $time_diff/(3600 * 24); 

echo "Difference \t ".($day_diff)."\n"; 
echo "Quote Index \t ".intval(floor($day_diff))."\n"; 
echo "Func Calc \t ".get_passed_days($create_time)."\n"; 

function get_passed_days($create_time) 
{ 
    return intval(floor((time() - $create_time)/86400)); 
} 

要转换为小时,而不是86400把3600代替。

希望这会有所帮助。

+0

根据OP的问题&'标签'这似乎是正确的答案 – AXL 2017-10-27 10:22:22