Autor | Zpráva | ||
---|---|---|---|
jtfcobra Profil |
#1 · Zasláno: 6. 8. 2014, 08:51:09
Ahoj poradíte jak počítat
mám směny 1.1.2014 8:00 až do 1.1.2014 14:00 (denní smena) 2.1.2014 18:00 až do 3.1.2014 06:00 (nocni smena) 3.1.2014 14:00 až do 3.1.2014 18:00 (odpolední smena) atd...¨ potřebuji vědět kolik minut a hodin je za směnu... Děkuji za radu |
||
aDAm Profil |
#2 · Zasláno: 6. 8. 2014, 09:28:04
date_diff je to co hledáš...
|
||
jtfcobra Profil |
#3 · Zasláno: 6. 8. 2014, 09:41:50
Moh by jsi napsat příklad ?
|
||
David Klouček Profil |
#4 · Zasláno: 6. 8. 2014, 09:56:43
//2.1.2014 18:00 až do 3.1.2014 06:00 (nocni smena) $start = new DateTime('2014-1-2 18:00'); $konec = new DateTIme('2014-1-3 06:00'); echo $start->diff($konec)->format('%H hodin %i minut'); |
||
aDAm Profil |
#5 · Zasláno: 6. 8. 2014, 10:05:43
jtfcobra:
a kouknout do dokumentace si se zkoušel? |
||
jtfcobra Profil |
#6 · Zasláno: 6. 8. 2014, 10:54:30
Funguje to super ted nactu hodiny a vsechno OK ale kdyz chci pri dotazu ukladat je to mozne ?Děkuji za radu
<?php $db = mysql_connect($hostname_test, $username_test, $password_test); mysql_select_db($database_test,$db); $hledat= $_GET["mac"]; $result = mysql_query("SELECT * FROM hotelsystem.dochazka_id_smeny ",$db); $radku = mysql_num_rows($result); for($i=0;$i<$radku;$i++) { $id=mysql_result($result,$i,"id"); $prichoddatum=mysql_result($result,$i,"prichoddatum"); $prichodcas=mysql_result($result,$i,"prichodcas"); $odchoddatum=mysql_result($result,$i,"odchoddatum"); $odchodcas=mysql_result($result,$i,"odchodcas"); $prichod=$prichoddatum.' '.$prichodcas; $odchod=$odchoddatum.' '.$odchodcas; $start = new DateTime($prichod); $konec = new DateTIme($odchod); $vysledek = $start->diff($konec)->format('%H,%i'); echo 'ID: '.$id.' ,odpracovano '.$vysledek.'</BR>'; // ulozeni do DB prosim o radu !!! } mysql_close($db); ?> |
||
David Klouček Profil |
To neni dobrej nápad. Volal bych před výpisem funkci, která délku směn přepočítá (na straně DB, ne v cyklu). Proč se to vlastně nespočítá hned, když víš konec směny?
Přepočet na straně DB může vypadat takhle: -- odpracovano je time null UPDATE tbl SET odpracovano = TIMEDIFF(konec, start) WHERE odpracovano IS NULL; Položky z DB procházej pomocí while+mysql_fetch_assoc(). |
||
jtfcobra Profil |
Takle je to asi kravina co ? Pripadne jak to zmenit ?
Uz jsem to i upravil ale prozatim premyslim nad tim jak budu scitat celkem za mesic hodin ....jestli to ukladat do DB jako time ci integer ...? <?php $db = mysql_connect($hostname_test, $username_test, $password_test); mysql_select_db($database_test,$db); $result = mysql_query("SELECT * FROM hotelsystem.dochazka_id_smeny ",$db); $radku = mysql_num_rows($result); for($i=0;$i<$radku;$i++) { $id=mysql_result($result,$i,"id"); $prichoddatum=mysql_result($result,$i,"prichoddatum"); $prichodcas=mysql_result($result,$i,"prichodcas"); $odchoddatum=mysql_result($result,$i,"odchoddatum"); $odchodcas=mysql_result($result,$i,"odchodcas"); $prichod=$prichoddatum.' '.$prichodcas; $odchod=$odchoddatum.' '.$odchodcas; $start = new DateTime($prichod); $konec = new DateTIme($odchod); $vysledek = $start->diff($konec)->format('%H,%i'); echo 'ID: '.$id.' ,odpracovano '.$vysledek.'</BR>'; $denvtydnu = date("w", strtotime($prichoddatum)); if ($denvtydnu == '0') $denvtydnu1='Nedele'; if ($denvtydnu == '1') $denvtydnu1='Pondeli'; if ($denvtydnu == '2') $denvtydnu1='Utery'; if ($denvtydnu == '3') $denvtydnu1='Streda'; if ($denvtydnu == '4') $denvtydnu1='Ctvrtek'; if ($denvtydnu == '5') $denvtydnu1='Patek'; if ($denvtydnu == '6') $denvtydnu1='Sobota'; echo 'Den v tydnu: '.$denvtydnu1.'</BR>'; if ($denvtydnu1 == 'Nedele') $typdne='Vikend'; if ($denvtydnu1 == 'Pondeli') $typdne='Pracovni den'; if ($denvtydnu1 == 'Utery') $typdne='Pracovni den'; if ($denvtydnu1 == 'Streda') $typdne='Pracovni den'; if ($denvtydnu1 == 'Ctvrtek') $typdne='Pracovni den'; if ($denvtydnu1 == 'Patek') $typdne='Pracovni den'; if ($denvtydnu1 == 'Sobota') $typdne='Vikend'; echo 'Pracovni den: '.$typdne.'</BR>'; mysql_query("UPDATE hotelsystem.dochazka_id_smeny SET POCETHODIN = '$vysledek' , DENVTYDNU = '$denvtydnu1' , TYPDNE = '$typdne' WHERE id = '$id' "); } mysql_close($db); ?> |
||
Časová prodleva: 11 let
|
0