[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не понятки со unixtimestamp
kadr
Привет всем.
Описание проблемы:
Есть база данных, в которой храниться дата и время в стампе, пытаюсь вычислить количество потраченного времени на выполнение определенных задачь, то есть есть дата обращения и дата исполнения.
Дата обращения 29.03.2012 14:03:11
Исполнено 29.03.2012 14:03:13 (03:01:02)
В скобках вычисляется время потраченное, то есть Исполнено - Дата обращения, что соответственно в unix 1333017913 - 1333017851 = 62, теперь самое интересное - функцией data('H:m:s',62) мне выдает то что в скобках (03:01:02), как это, секунды правильно выдает, а всё остальное это откуда? получается что в 62 unix секундах 2 обычные секунды. Что разве unixtimestamp это не количество секунд начиная с 01.01.1970 года?
Помогите решить эту замарочку!!!



Спустя 15 минут, 41 секунда (6.04.2012 - 09:09) Nikitian написал(а):
Сделайте date_default_timezone_set('UTC'); перед этим и должен быть 00:01:02
Сейчас он использует вашу текущую временную зону, которая +3 часа, отсюда и лишние 3 часа в результате. Вроде ничего не напутал, а то эти временные зоны меня в ступор вводят.

Спустя 13 минут, 4 секунды (6.04.2012 - 09:23) rooor написал(а):
gmdate('H:m:s',62)

Спустя 4 минуты, 43 секунды (6.04.2012 - 09:27) kadr написал(а):
Исполнено 29.03.2012 11:03:56 (00:01:56)
Дата обращения 29.03.2012 10:03:00
Все уменьшилось на 3 часа, а само время все равно не правильно вычисляется.
Мне надо из разницы между ними получить вменяемое время в человекопонятном виде.
gmdate('H:m:s',62) не катит.
Вот здесь логично было бы получить 01:00:56 - Согласны? А что получаю - 00:01:56

Спустя 6 минут, 16 секунд (6.04.2012 - 09:34) rooor написал(а):
$s = "29.03.2012 11:03:56";
$s1 = "29.03.2012 10:03:00";
echo gmdate("H:i:s", strtotime($s) - strtotime($s1));


в первом моем посте ошибка

Спустя 7 минут, 24 секунды (6.04.2012 - 09:41) kadr написал(а):
echo gmdate("H:i:s", $model->date_ispoln_real - $model->date_obrachenia);
00:06:56
Не то.
$s = "29.03.2012 11:03:56";
$s1 = "29.03.2012 10:03:00";
echo gmdate("H:i:s", strtotime($s) - strtotime($s1));
Так то нормально отрабатывает.

Короче вот так нормально показывает:

$date_ispoln_real = date('d.m.Y H:m:s',$model->date_ispoln_real);
$date_obrachenia = date('d.m.Y H:m:s',$model->date_obrachenia);
echo gmdate("H:i:s", strtotime($date_ispoln_real) - strtotime($date_obrachenia));

Спустя 10 минут, 39 секунд (6.04.2012 - 09:52) rooor написал(а):
date('d.m.Y H:i:s')

Спустя 4 минуты, 46 секунд (6.04.2012 - 09:56) killer8080 написал(а):
kadr
как вариант
$diff = strtotime('29.03.2012 14:03:13') - strtotime('29.03.2012 14:03:11');
$time = sprintf('%02d', floor($diff / 3600)).':'.
sprintf('%02d', floor($diff / 60) % 60).':'.
sprintf('%02d', $diff % 60);
echo $time;

Спустя 1 минута, 14 секунд (6.04.2012 - 09:58) kadr написал(а):
Цитата (rooor @ 6.04.2012 - 06:52)
date('d.m.Y H:i:s')

Точно, тупнул.

Спустя 18 минут, 18 секунд (6.04.2012 - 10:16) kadr написал(а):
БлагоДарю всех за помощь!!! Всё работает как надо.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.