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

Форум PHP

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

 

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

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

тема: Операции над временем в php
 
 автор: BIFF99   (05.08.2010 в 22:33)   письмо автору
 
 

Например в Excel если вычесть от 18:37 - 17:37 будет равно 1:00. Или 18:37 - 18:34 = 0:03
А попытался вычесть время преобразовав его с помощь StrToTime().

$dateTime01 = $_POST[times]; 
$dateTime02 = $_POST[timevalue]; 
// 

$dateTime1 = StrToTime($dateTime01); 
$dateTime2 = StrToTime($dateTime02); 
// 
$dateTime4 = ($dateTime1 - $dateTime2); 
$_POST[time] = date("H:i",$dateTime4); 


Но на выходе $_POST[time] записывает не разницу во времени.

Например если $_POST[times]; равно 16:41
а $_POST[timevalue]; равно 16:46

При вычитании 2-го из первого должно быть так 00:05
но почему-то в базе данных записывается так 16:45

Может надо использовать функцию mktime()?

  Ответить  
 
 автор: lElectroHardl   (05.08.2010 в 22:54)   письмо автору
 
   для: BIFF99   (05.08.2010 в 22:33)
 

Тоже некоторое время думал над этой задачей. Потом придумал простенькую реализацию этой задачи. (мне она нужно была для проверки добавления времени коммента).
Если вам тоже нужно что-то проверить, то можно делать так:
$time = time();
time() - $time;

  Ответить  
 
 автор: BIFF99   (05.08.2010 в 23:12)   письмо автору
 
   для: lElectroHardl   (05.08.2010 в 22:54)
 

lElectroHardl Не оч. понял как это работает)

У меня задача немного другая - $_POST[times]; и $_POST[timevalue]; заранее мне известны.
Мне нужно вычесть большее время от меньшего и занести их разность в базу данных.

  Ответить  
 
 автор: BIFF99   (05.08.2010 в 23:33)   письмо автору
 
   для: BIFF99   (05.08.2010 в 23:12)
 

а что средствами php нельзя узнать разность двух времен?

  Ответить  
 
 автор: lElectroHardl   (06.08.2010 в 11:05)   письмо автору
 
   для: BIFF99   (05.08.2010 в 23:33)
 

Как ты себе это представляешь?
16:40 - 16:30 != 10

  Ответить  
 
 автор: BIFF99   (06.08.2010 в 11:35)   письмо автору
 
   для: lElectroHardl   (06.08.2010 в 11:05)
 

>Как ты себе это представляешь?
>16:40 - 16:30 != 10

Очень просто) 16:40 - 16:30 = 0:10
Я же написал как Excel. Просто зайдите в Excel и вычислите разницу между двумя временами в формате ячейки ч:мм и поймете как я это представляю.
Я не верю что в php это нельзя реализовать. Я просто новичок, поэтому и обратился на форум.

  Ответить  
 
 автор: BIFF99   (06.08.2010 в 12:04)   письмо автору
 
   для: BIFF99   (06.08.2010 в 11:35)
 

.

  Ответить  
 
 автор: BIFF99   (06.08.2010 в 12:06)   письмо автору
 
   для: BIFF99   (06.08.2010 в 12:04)
 

Задача решена.

  Ответить  
 
 автор: BIFF99   (06.08.2010 в 12:04)   письмо автору
 
   для: BIFF99   (06.08.2010 в 11:35)
 

lElectroHardl Собственно решение, вот и посмотрите, как я себе это представляю.

$t1 = StrToTime('16:45');
var_dump($t1);            // int 1281098700
echo date('H:i', $t1);    // 16:45

$t2 = StrToTime('16:41');
var_dump($t2);            // int 1281098460
echo date('H:i', $t2);    // 16:41

$t3 = $t1 - $t2;
var_dump($t3);            // int 240
echo date('H:i', $t3);    // 04:04 - Так учитывает текущий часовой пояс
echo gmdate('H:i', $t3);  // 00:04 - А так нет

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

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