Terve!
Auttakkeehan hieman aloittelijaa. Eli olisi hieman ongelmia ajan kanssa. $aikataulu->hour:$minute strigissä on aika muodossa ??:?? ja nyt pitäisi $_SESSION["aika"] muuttujassa oleva minuutti määrä päästä lisätä edelliseen aikaan. Eli esim. aika on 23:19 ja siihen pitäisi lisätä $_SESSION muuttujassa oleva 9 minuutia. Miten ko. ongelma hoituu?
Hmm... Jos tuollaista joutuu kikkailemaan, on jotain luultavasti tehty väärin. Mistä tuo esim. 23:19 tulee? Jossakin kannassa on stringi 23:19 ? Yleensä aikojen kanssa kannattaa puuhastella standardien aikaleimojen kanssa, jollon niiden laskemiseen ja muotoiluun on valmiit työkalut.
Itse lähtisin ongelmaa ratkomaan ehkä muuttamalla tuon 23:19 sekunneiksi, lisäämällä siihen sen 9 minuuttia sekunteina ja muuttamalla takaisin tunnit:minuutit -muotoon.
Aivan oikein tuumailit... Kannassa on tunnit omassa kentässään ja minuutit omassa kentässään ja tietty noi lisä minuutit omassa kentässä. Ajattelin itse aluksi tehdä funktion missä pyörittelis ajan oikeaksi. Esim aika 23:50 johon lisätään 12 min niin jos minuutit menee yli 60 niin lisätään tuntiin yksi ja jos tunnit menee yli 24 niin tunti on 1 jne....
Miten php:ssä määritellään aika muuttuja vai voiko sen määritellä mitenkään? vai onko muuttuja aina stringi?
PHP:ssä muuttujien määrittely on aika löyhää. Muuttujia ei tarvitse esitellä sen enempää, tosin (ainakin omasta mielestäni) muuttujien esittely on suotavaa (esittelemättömät muuttujat yhdistettynä register_globals asetuksen päällä oloon saattaa tietyissä tapauksissa avata tietoturva-aukkoja). Muuttujasta tulee sen tyyppinen, minkä arvon sille annat:
<?php $muuttuja = true; //boolean $muuttuja = 100; //integer $muuttuja = "sata"; //string ?>
Kävi mielessä tuohon ongelmaasi myös seuraava ratkaisu: tehdään ajasta unix-aikaleima. Jos päivämäärällä ei ole väliä, voidaan päivänä käyttää mitä tahansa päivää:
<?php $tunnit = 23; $minuutit = 52; $lisa_minuutit = 12; echo "Kello ennen muutosta $tunnit:$minuutit <br />"; //tehdään kellonajasta unix-aikaleima $alkuaika = mktime($tunnit,$minuutit,0,1,1,2000); $loppuaika = $alkuaika + $lisa_minuutit * 60; $tunnit = date("h",$loppuaika); $minuutit = date("i",$loppuaika); echo "Kello muutoksen jälkeen $tunnit:$minuutit <br />"; ?>
Tässä linkit vielä manuaaliin funktioiden esittelyyn:
https://www.php.net/manual/fi/function.mktime.
https://www.php.net/manual/fi/function.date.php
Aihe on jo aika vanha, joten et voi enää vastata siihen.