Idő összeadása és kivonása
Sziasztok!
Ahogyan itt nagyon sokan, segítségért fordulnék a közösséghez. Előre leszögezem, hogy egyáltalán nem vagyok profi a php-ban, pár ehte ismerkedek vele, tehát lelkes kezdő vagyok. Lehet, hogy olyat fogok kérdezni, ami a haladóknak vagy a profiknak egy nagyon egyszerű rutin feladat.
Időket szeretnék összeadni és kivonni, majd ezekkel különböző matematikai műveleteket végezni. Adott lenne egy tárgy, aminek az összes üzemideje tegyük fel 12:30 perc. Ez adatbázisban lenne letárolva. A felhasználó POST-al vagy GET-el egy űrlapon keresztül átadna használati időt az adott berendezéshez. Pl. 1:40 percet. Ekkor ugye az összes használat 14 óra 10 perc lenne. A kivonás ugye szintén hasonlóképpen műkedne, mert hát az időt másképpen nem lehet számolni.
Ez meghaladja az eddigi tudásomat, ezért szeretném kérdezni tőletek, hogy van e erre valamiféle működő (és egy kezdő számára is megérthető) függvény vagy bármilyen megoldás, amit alkalmazni tudnék? Néhány megoldást már találtam a különböző fórumokon, de mivel magyarázat nem volt hozzájuk így nem igazán látom át a működésüket.
Előre is köszönöm a válaszokat.
■ Ahogyan itt nagyon sokan, segítségért fordulnék a közösséghez. Előre leszögezem, hogy egyáltalán nem vagyok profi a php-ban, pár ehte ismerkedek vele, tehát lelkes kezdő vagyok. Lehet, hogy olyat fogok kérdezni, ami a haladóknak vagy a profiknak egy nagyon egyszerű rutin feladat.
Időket szeretnék összeadni és kivonni, majd ezekkel különböző matematikai műveleteket végezni. Adott lenne egy tárgy, aminek az összes üzemideje tegyük fel 12:30 perc. Ez adatbázisban lenne letárolva. A felhasználó POST-al vagy GET-el egy űrlapon keresztül átadna használati időt az adott berendezéshez. Pl. 1:40 percet. Ekkor ugye az összes használat 14 óra 10 perc lenne. A kivonás ugye szintén hasonlóképpen műkedne, mert hát az időt másképpen nem lehet számolni.
Ez meghaladja az eddigi tudásomat, ezért szeretném kérdezni tőletek, hogy van e erre valamiféle működő (és egy kezdő számára is megérthető) függvény vagy bármilyen megoldás, amit alkalmazni tudnék? Néhány megoldást már találtam a különböző fórumokon, de mivel magyarázat nem volt hozzájuk így nem igazán látom át a működésüket.
Előre is köszönöm a válaszokat.
Másodperc
Köszönöm a választ. Valóban
maradékos osztás
Köszönöm mind a két választ.
settype($szam, integer);
ez ha jól tudom felfelé is kerekít. (Ha esetleg nem, akkor a tudáshiány nem mentesít tudom)
Ugyanis arra gondoltam, hogy egyszerűen kiszámolom:
$szam = 850/60;
$ora = explode(".", $szam);
$perc = 850-($ora*60);
Ezt sikerült összehoznom. Nagyon köszönöm az iránymutatást.
Lenne még egy kérdésem. És megmondom őszintén nem szeretnék ennek a buta kérdésemnek is topicot nyitni. Talán észreveszi valaki.
Szövegdobozból adatbázisba tárolok le értéket. A mondatok tartalmaznak szóközöket és sortöréseket. Ez az adatbázisban még gyönyörű. Azonban amikor kiolvasom az adatbázisból és meg szeretném jeleníteni, vagy éppen tovább adom GET-el, akkor eltűnnek a mondatok közti szóközök és a sortörések.
Erre a problémára esetleg lenne megoldási javaslatotok?
A számolásnál csináld, ahogy
A sortörések azért tűnnek el, illetve azért hullanak össze a szóközök, mert a HTML alapbeállítás szerint így jelenik meg (ez teszi lehetővé, hogy olvashatóan tördeld a forrást). Ha meg akarod őket jeleníteni, akkor több lehetőséged van, a tartalom jellegétől függ, hogy melyik a helyes: beteheted egy
pre
elembe, ami előre tördelt szöveghez való, megadhatod ugyanezt a tulajdonságot CSS-ből, ha csak látvány szempontjából fontos, használhatszbr
elemet, ha a tartalmi jelentősége van a sortörésnek (pl. versnél), vagy teheted a szöveget blokkszintű elemekbe (pl. bekezdésekbe).Új kérdésnek pedig nyugodtan nyiss új témát.
Fogalmam sincs, hogy mit
<?
$ora = (int) 850 / 60;
$perc = 850 % 60;
print "$ora";
print "<br>";
print "$perc";
?>
Eredményoldal:
14.166666666667
10
Azért nem nyitottam új téémát mert tényleg nem akarok fölöslegesen az egyszerű kérdéseimmel terhelni a fórumot. Komolyabb témák vannak itt, mint az én amatőr kérdéseim.
Csak látvány szempontjából lenne fontos. Nézd el nekem, most megint butaságot írok.
Kódom:
<tr>
<td>Megjegyzés:</td>
<td><textarea name="megjegyzes"><pre><?= $_GET['megjegyzes'] ?></pre></textarea></td>
</tr>
Eredményoldalam:
<pre>Ez egy megjegyzés.Ami akár lehetne több soros is, ha nem lennék analfabéta a megjelenítéshez.</pre>
Nyilvánvalóan hibásan használom a pre taget. Hogyan kellene használnom ebben a formában?
floor
Tesztelgettem közben. Az
A megjelenítéssel kapcsolatban valószínűleg rosszul tettem fel a kérdést, vagy ismét a hiányos tudásom áldozata lettem.
HTML-be illesztve igazad van Ádám. Köszönöm, mert eddig sem tudtam.
<?
print "<pre>";
print $sor["megjegyzes"];
print "</pre>";
}
?>
Ez így tökéletesen működik. De ha ugye a szövegdobozba szeretném betenni adatbázisból a tárolt adatokat, akárhova teszem a tagokat, nem működik.
nl2br()
nl2br()
függvény (vagyis new line to br). Ez az újsor-karaktereket alakítja a böngésző által megjelenített sortörésnek. A szövegdobozba ütött Entereket az adatbázis újsor-karakterként menti, ez azonban csak a forráskódban kerül új sorba, a böngésző<br>
elemmé alakítva renderel belőlük szövegközi sortörést.Az egész számra lefelé kerekítés az említett
floor()
függvénnyel egészen egyszerű: afloor(16.7)
kiadja, hogy 16.Köszönöm szépen. Este ki
floor()
Itt a kódrészletem: <tr>
<tr>
<?
$megjegyzes = nl2br($_GET['megjegyzes']);
?>
<td valign="top">Megjegyzés:</td>
<td><textarea name="megjegyzes"><?= $megjegyzes ?></textarea></td>
</tr>
Természetesen nem működik. A letárolásnál is kellene valamit trükközni? Az adatbázisban teljesen jól néz még ki. Vagy a GET-el lesz gond? Esetleg már amikor a GET-nek átadom, előtte kellene a függvényt alkalmaznom?
A nem működik mit jelent? Mit
Ugyanazt látom, amit a
pl. az adatbázisban ezt látom:
teszt1
teszt2
Amit pedig bekülden forrást:
teszt1teszt2
Nekem úgy tűnik, mint ha a letárolásnál, vagy az átadásnál eltűnnének a mondatok közti szóköz elemek és sortörések.
Természetesen nem működik. A
Nem olvastam vissza így nem teljesen tiszta mi a célod, de ha ez:
Ha a textarea-ban megakarod tartani a sortöréseket, akkor oda az eredetileg kapott változatot töltsd be. (Persze azért préseld át szűrőkön)
Az nl2br "\r\n vagy \n" elemeket <br>-é alakítja. Ami jó neked a <p>,<div>,<span> stb. html elemekbe.
a <textarea>-ba pedig a hagyományos változatra lesz szükséged.
De ha ugye a szövegdobozba
Mert oda sortöréseket (
\n
) kell rakni.Sajnos nem tudom mindezt
Nem értem
Persze, értem, nem az volt a kérdés, hanem a matek, és jelezted is, hogy most kezdted. Viszont ha tovább is akarsz fejlődni, akkor mindenképpen sokat olvasd a kézikönyvet (is)! Ez egyébként számos formában letölthető is.
Alapvetően a date()
Az jó