Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Operacje na czasie w zmiennych
Forum PHP.pl > Forum > PHP
Helikon
Witajcie!

Mam następujące zmienne:
$b['wejscie19'] oraz $b['wyjscie19'] i przybierają one wartość godzinową, czyli w formacie 00:00:00, 01:30:00 i tak dalej..
Chciałbym aby wynik następującego działania dawał nam postać według formatu godzinowego, a nie całkowitego:
$iloscsroda = $b['wyjscie19'] - $b['wejscie19'];
W tym momencie zmienna zwraca takie liczby całkowite - 1, 8, 16. Chciałbym jednak żeby zwracała 01:00, 08:00, 16:00 i brała też pod uwagę minuty - np. 16:30.

Czy ktoś może podpowiedzieć sposób jakim mogę wykonywać działania na czasie?

Pozdrawiam,
Helikon
Pyton_000
Przekonwertuj na sekundy np:

  1. $sec = strtotime('00:10:00') - strtotime('today');


Potem odejmij wartości a następnie wyświetl sobie np:

  1. echo date('h:i:s', $roznica);
Helikon
Cytat(Pyton_000 @ 10.01.2017, 20:42:38 ) *
Przekonwertuj na sekundy np:

  1. $sec = strtotime('00:10:00') - strtotime('today');


Potem odejmij wartości a następnie wyświetl sobie np:

  1. echo date('h:i:s', $roznica);


Napisałem coś takiego:

  1. $sec_wyjsciewtorek = strtotime($a['wyjscie18']);
  2. $sec_wejsciewtorek = strtotime($a['wejscie18']);
  3.  
  4. $sumawtorek = $sec_wyjsciewtorek - $sec_wejsciewtorek;
  5.  
  6. $iloscwtorek = date('H:i', $sumawtorek);


Lecz zwraca wynik o jedną godzinę większą - również dla wartości 00:00:00 zwraca 01:00 smile.gif

Może być to kwestia strefy czasowej? Jak ją tutaj zmienić?
viking
  1. $date1 = DateTime::createFromFormat('H:i:s', '06:00:00');
  2. $date2 = DateTime::createFromFormat('H:i:s', '03:45:00');
  3. $x = $date1->diff($date2);
  4.  
  5. var_dump($x->format('%H:%I:%S'));
Helikon
Cytat(viking @ 10.01.2017, 20:52:16 ) *
  1. $date1 = DateTime::createFromFormat('H:i:s', '06:00:00');
  2. $date2 = DateTime::createFromFormat('H:i:s', '03:45:00');
  3. $x = $date1->diff($date2);
  4.  
  5. var_dump($x->format('%H:%I:%S'));


Tutaj czaję i działa, tylko może trochę banał - jak to wyświetlić w postaci samej godziny?

  1. echo var_dump($x->format('%H:%I:%S'));


Bo dając coś takiego zwraca string(8) "02:15:00".
viking
Really? echo $x->format('%H:%I:%S');
krzywy5830
Cytat(Helikon @ 10.01.2017, 20:56:44 ) *
Tutaj czaję i działa, tylko może trochę banał - jak to wyświetlić w postaci samej godziny?

  1. echo var_dump($x->format('%H:%I:%S'));


Bo dając coś takiego zwraca string(8) "02:15:00".


http://php.net/manual/en/function.date.php

Jak chcesz tylko samą godzinę to będzie $x->format('H'), jeśli godzinę z minutami to $x->format('H:i'), a jeśli godzinę z minutami i sekundami to $x->format('H:i:s'), gdzie H - godziny, i - minuty, s - sekundy.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.