Преобразование метки времени Unix в часы - PullRequest
4 голосов
/ 06 мая 2011

All

У меня есть поле базы данных, которое фактически вычисляет время, потраченное с момента начала теста до текущего времени. Это было сделано в определенный момент времени (записано как текущее время), и теперь у меня есть для него значение Unixtimestamp

т.е. Предположим, что время начала было 5/5/2011 13:00, а текущее время было заполнено 5/5/2011 14:00. Таким образом, разница рассчитывается и сохраняется как метка времени Unix.

Теперь я не знаю, когда это было на самом деле, и теперь мне нужно вернуться к часам, потраченным на прохождение теста. Так что здесь метку времени Unix нужно преобразовать обратно в часы, в этом случае вернуть 1 час. Может кто-нибудь, пожалуйста, помогите мне понять, как это сделать?

Ответы [ 2 ]

9 голосов
/ 06 мая 2011

У вас есть секунды, поэтому просто сделайте что-то вроде

SELECT secondsField / 3600 as 'hours' FROM tableName
1 голос
/ 02 сентября 2011

Вот пример определения разницы между двумя временными метками в днях.

//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.

Надеюсь, это поможет.

...