Разница между отметкой времени php? Или отметка времени mysql?

0

У меня есть две метки времени, записанные в таблице mysql с использованием php. Как рассчитать разницу между этими временными метками в часах с помощью php или mysql?

  • 0
    Что вы хотите увидеть, если разница между двумя датами превышает один день?
Теги:

3 ответа

0
Лучший ответ

Если вы используете часы (3600 секунд), это всего лишь вопрос вычитания временных меток и деления на 3600:

$hours = ($timestamp2 - $timestamp1)/3600;
$hours = floor($hours); // to round down.

или аналогичный в SQL.

Если вы хотите "логические часы":

$tz = new DateTimezone("Europe/Lisbon"); //replace with actual timezone
$d2 = new DateTime("@$timestamp2");
$d2->setTimezone($tz); 
$d1 = new DateTime("@$timestamp1");
$d1->setTimezone($tz);
$hours = $d2->diff($d1)->h;

Это имеет значение в случае, если между двумя изменениями произошел переход на летнее время. Пример:

<?php
$ltz = new DateTimezone("Europe/Lisbon");
date_default_timezone_set("Europe/Lisbon");
$ts2 = strtotime("31-Oct-2010 02:30:00");
$ts1 = strtotime("31-Oct-2010 00:30:00");

$d2 = new DateTime("@$ts2");
$d2->setTimezone($ltz);
$d1 = new DateTime("@$ts1");
$d1->setTimezone($ltz);

var_dump(floor($ts2-$ts1)/3600);
var_dump($d2->diff($d1)->h);

дает:

float(3)
int(2)
0

Сделано в PHP, см. это: http://php.about.com/od/advancedphp/qt/math_time_php.htm

0

в php вы можете просто использовать регулярную математику, а затем использовать функцию date() для создания даты и времени, представленной в часах

Ещё вопросы

Сообщество Overcoder
Наверх
Меню