Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] [mysql] operacje na czasie
Forum PHP.pl > Forum > Przedszkole
graveozz
Witam.
Problem prawdopodobnie jest trywialny, ale spędza mi sen z powiek już od dwu wieczorów.
Otóż z bazy danych mysql pobieram do $zmiennej_1 wartość komórki typu TIME (HH:MM:SS) po wyświetleniu jej na stronce otrzymuje prawidłową jej wartość: np. 01:30:00.
Chciałbym do tak pobranej godziny dodać inną $zmienną_2 zawierajaca pobrany z pola typu input czas np: 00:50:00 i po zsumowaniu otrzymac:
$zmienna_1 + $zmienna_2 = 02:20:00 niestety jak się domyślacie wynik takiej operacji nie jest nawet podobny. Próbowałem z strtotime(), i innymi funkcjami, nie potrafie tego rozwikłać.
Czy ktoś mógłby mi pomóc? a może ktoś miał podobny problem i go rozwiązał? Z góry dziekuję za pomoc.
mefjiu
Zmień obydwa czasy na czasy unikswe i wtedy dodaj. mktime()
Kicok
Musisz poskładać sobie coś takiego:
  1. <?php
  2.  
  3. echo date( 'H:i:s', strtotime( '01:30:00 +00 hour +50 minute +00 second' ) );
  4.  
  5. ?>



explode" title="Zobacz w manualu PHP" target="_manual
Kicok
mktime" title="Zobacz w manualu PHP" target="_manual - strtotime" title="Zobacz w manualu PHP" target="_manual

Wypisz wszystkie szczegóły którymi różnią się te funkcje ;]
graveozz
Dobre pytanie Kicok smile.gif
Akutalnie mam coś takiego:

  1. <?php
  2.  $godz1="00:10:00";
  3. $zmienna=date('H:i:s',strtotime($godz1));
  4.  echo 'Wartosc zmiennej<b> '.$zmienna.' </b>';
  5.  
  6.  $godz2="00:20:00";
  7.  $zmienna2=date('H:i:s',strtotime($godz2));
  8.  echo 'Wartosc zmiennej_2 <b> '.$zmienna2. ' </b>';
  9.  
  10.  
  11.  $wynik=date('H:i:s', mktime($zmienna + $zmienna2));
  12.  echo 'wynik dodawania to: <b> ' .$wynik. '</b>';
  13.  
  14.  ?>

wyswietlany wynik to:
Wartosc zmiennej 00:10:00
Wartosc zmiennej_2 00:20:00
wynik dodawania to: 00:31:32

Ja oczekuje ze po dodaniu przechowujacych minuty dwu zmiennych w trzeciej otrzymam 00:30:00, wie ktoś jak to zrobić?
Cienki1980
Proszę poprawić BBCode w swoich postach
graveozz
Witam problem ciągle nie rozwiązany. Za radą Kicoka udało mi się dodać dwa stringi jako czas (linia 6), ale czy da się zrobić to samo na dwu zmiennych przechowujących czas (linia 8)? Poniżej mój kod:

  1. <?php
  2. $zmienna1="00:20:00";
  3. echo $zmienna1. '<br />';
  4. $zmienna2="00:20:00";
  5. echo $zmienna2. '<br />';
  6. echo date( 'H:i:s', strtotime( '00:20:00 + 00 hour +50 minute +00 second' ) ); //działa poprawnie
  7. echo '<br />;
  8. echo date( 'H:i:s, strtotime( $zmienna1 + $zmienna2) );//nie działa
  9.  ?>

Otrzymany wynik:
00:20:00
00:50:00
01:10:00 //wynik poprawny
00:00:00 //wynik błędny


Potrafi ktoś, dodać te dwie zmienne tak, aby wynik był identyczny jak w pierwszym z działań? Czy jest to wogóle możliwe przy wykorzystaniu wewnętrznych istniejących funkcji PHP? Z góry dziekuję za pomoc.
mike
~graveozz dostajesz ostrzeżenie za brak lub niepoprawny bbCode.
Proszono Cię już nie raz a Ty nadal masz to w dupie.

Za następny brak lub niepoprawny bbCode do ostrzeżenia dostaniesz moderację postów na tydzień.
Proszę ostatni raz: proszę uzupełnić wszystkie swoje posty o poprawny bbCode. [php] dla kodów PHP, [code] dla innych, [quote] dla cytatów, itd.
Ciężko to zrozumieć?
graveozz
W sumie nie tak ciężko, sorry za to, wybaczcie nowemu użytkownikowi.
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.