Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Форматирование разницы между двумя временными метками
 
 автор: Dazzl   (20.07.2011 в 09:55)   письмо автору
 
 

Люди можно как-нить узнать сколько времени между 2?

допустим у нас есть такие числа (ввиде времени) 12:23:09 и 14:57:45 как узнать сколько между ними времени (в числах разумеется)

  Ответить  
 
 автор: ONYX   (20.07.2011 в 10:50)   письмо автору
 
   для: Dazzl   (20.07.2011 в 09:55)
 

Вроде так
<?
    $date_1 
'12:23:09';
    
$date_2 '14:57:45';
    
    
#преобразуем в метку времени Unix
    
$stamp_1 strtotime($date_1);
    
$stamp_2 strtotime($date_2);
    
    
#из большей даты вычитаем меньшую, что бы найти отрезок времени
    
$stamp_result $stamp_2 $stamp_1;
    
    
$date_3 date('H:i:s',$stamp_result);
    
    echo 
$date_3;
?>

  Ответить  
 
 автор: Dazzl   (20.07.2011 в 11:00)   письмо автору
 
   для: ONYX   (20.07.2011 в 10:50)
 

Спасибо вы мне оч помогли

  Ответить  
 
 автор: Dazzl   (20.07.2011 в 11:06)   письмо автору
 
   для: ONYX   (20.07.2011 в 10:50)
 

Э-э тут такая проблема, этот код неправильно считает

как между ними

$date_1 = '12:23:09';
$date_2 = '14:57:45';

может быть

05:34:36

?

  Ответить  
 
 автор: Dazzl   (20.07.2011 в 11:08)   письмо автору
 
   для: Dazzl   (20.07.2011 в 11:06)
 

А-а понял видимо придется придерживаться 1-12 а не 1-24

  Ответить  
 
 автор: Dazzl   (20.07.2011 в 13:37)   письмо автору
 
   для: Dazzl   (20.07.2011 в 11:08)
 

((((((((( и всё же я не понял как он считает (

  Ответить  
 
 автор: cheops   (20.07.2011 в 13:54)   письмо автору
 
   для: Dazzl   (20.07.2011 в 13:37)
 

Нужно немножко изменить вывод даты, при помощи функции date() уже не получиться выводить форматированную разницу двух UNIXSTAMP-форматов
<?php
  
// Исходные даты
  
$date_1 '12:23:09'
  
$date_2 '14:57:45'
  
//преобразуем в метку времени Unix 
  
$stamp_1 strtotime($date_1); 
  
$stamp_2 strtotime($date_2); 
  
//из большей даты вычитаем меньшую, что бы найти отрезок времени 
  
$stamp_result $stamp_2 $stamp_1
  
// Выводим дату 
  
echo print_date($stamp_result); 

  function 
print_date($diff)
  {
    
$seconds $minutes $hours 0;
    
$minutes intval($diff 60);
    
$seconds $diff 60;
    
$hours intval($minutes 60);
    if(
$hours$minutes intval($seconds 60);
    return 
sprintf("%d:%02d:%02d"$hours$minutes$seconds);
  }
?>

  Ответить  
 
 автор: Dazzl   (20.07.2011 в 15:33)   письмо автору
 
   для: cheops   (20.07.2011 в 13:54)
 

а терь он считает часы а минуты и секунды стоят на месте

  Ответить  
 
 автор: cheops   (20.07.2011 в 15:50)   письмо автору
 
   для: Dazzl   (20.07.2011 в 15:33)
 

Не могу воспроизвести, у меня изменяются... Приведите пример ваших временных меток и результата, который выводит скрипт.

  Ответить  
 
 автор: Dazzl   (20.07.2011 в 16:08)   письмо автору
 
   для: cheops   (20.07.2011 в 15:50)
 

Выводить это 7:36:36 в принципе то что мне и надо часы меняються

тока когда меняешь минуты они по любому бывают 36:36

  Ответить  
 
 автор: cheops   (20.07.2011 в 16:31)   письмо автору
 
   для: Dazzl   (20.07.2011 в 16:08)
 

Да, ошибка закралась, попробуйте следующий вариант
<?php 
  
// Исходные даты 
  
$date_1 '12:13:09';  
  
$date_2 '14:57:45';  
  
//преобразуем в метку времени Unix  
  
$stamp_1 strtotime($date_1);  
  
$stamp_2 strtotime($date_2);  
  
//из большей даты вычитаем меньшую, что бы найти отрезок времени  
  
$stamp_result $stamp_2 $stamp_1;  
  
// Выводим дату  
  
echo print_date($stamp_result);  

  function 
print_date($diff
  { 
    
$seconds $minutes $hours 0
    
$minutes intval($diff 60); 
    
$hours intval($minutes 60); 
    
$seconds $diff 60
    if(
$hours$minutes intval($minutes 60); 
    return 
sprintf("%d:%02d:%02d"$hours$minutes$seconds); 
  } 
?>

  Ответить  
 
 автор: Dazzl   (20.07.2011 в 16:47)   письмо автору
 
   для: cheops   (20.07.2011 в 16:31)
 

Да работает тока теперь секунды стоят ))) лан эт не беда ))

  Ответить  
 
 автор: cheops   (20.07.2011 в 17:04)   письмо автору
 
   для: Dazzl   (20.07.2011 в 16:47)
 

Странно, у меня меняются...

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования