• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Rechnen mit PHP, nur stellen hinter dem Komma?

Status
Für weitere Antworten geschlossen.

Geltos

Mitglied
Ich hab versucht mir ein Skript zu machen, was mir anzeigt, wie lange es noch dauert bis zu einem bestimmten Termin. Es sieht momentan folgendermaßen aus:

PHP:
 $zeitstunde=date("G");
$zeitminute=date("i");
$sechzigmin="60";
$zeitendmo="930";

$zeitbisendmo=$zeitstunde*$sechzigmin;
$zeitbisendmo=$zeitbisendmo+$zeitminute;
$zeitbisendmo=$zeitendmo-$zeitbisendmo;
$zeitbisendmo=$zeitbisendmo/$sechzigmin;
print ("Es sind noch" . $zeitbisendmo . "bis zum Termin."

Der wert der dann in $zeitbisendmo steht ist beispielsweise 3,25 (Stunden) jedoch müsste die ,25 noch in minuten umgerechnet werden (0,25*60) wie kann man das machen mit php, dass nur die stellen nach dem Komma benutzt werden?
 
Zuletzt bearbeitet:
Ich hab versucht mir ein Skript zu machen, was mir anzeigt, wie lange es noch dauert bis zu einem bestimmten Termin. Es sieht momentan folgendermaßen aus:

PHP:
 $zeitstunde=date("G");
$zeitminute=date("i");
$sechzigmin="60";
$zeitendmo="930";

$zeitbisendmo=$zeitstunde*$sechzigmin;
$zeitbisendmo=$zeitbisendmo+$zeitminute;
$zeitbisendmo=$zeitendmo-$zeitbisendmo;
$zeitbisendmo=$zeitbisendmo/$sechzigmin;
print ("Es sind noch" . $zeitbisendmo . "bis zum Termin."
Der wert der dann in $zeitbisendmo steht ist beispielsweise 3,25 (Stunden) jedoch müsste die ,25 noch in minuten umgerechnet werden (0,25*60) wie kann man das machen mit php, dass nur die stellen nach dem Komma benutzt werden?
du ziehst den Wert ab, der von dem komma steht, zum beispiel:
PHP:
$zeit = 3.25;
$stunden = floor($zeit);
$minuten = round(60*($zeit-$stunden));
Gruß
 
ok ich hab das jetzt so gemacht, funktionierten tut das aber alles nich, da kommt jetzt en ganz komischer langer wert raus.

so siehts jetzt momentan aus:

PHP:
$zeitstunde=date("G");
$zeitminute=date("i");
$sechzigmin="60";

if ($uhrzeit > 740 && $uhrzeit < 1530) {
$zeitendmo="930";
$zeitbisendmo=$zeitstunde*$sechzigmin;
$zeitbisendmo.=$zeitbisendmo+$zeitminute;
$zeitbisendmo.=$zeitendmo-$zeitbisendmo;
$zeitbisendmo.=$zeitbisendmo/$sechzigmin;
$stdnmo=floor($zeitbisendmo);
$mintmo=$zeitbisendmo-$stdnmo;
$mintmo.=$mintmo*$sechzigmin;
$zeitbisendmo=$stdnmo;
$zeitbisendmo.=" : ";
$zeitbisendmo.=$mintmo;
print ("Es sind noch " . $zeitbisendmo . " Stunden bis Schulschluss.");
}

$zeitendmo="930"; is übrigens der wert der aus 15:30 uhr errechnet wurde. Also 15*60+30
 
Du rechnest einfach die Zahl, die hinter dem Komma rauskommt mal 6, dann sind das dort Minuten.
Beispiel:
3,1 Stunden (10% von 60 Minuten, da eine Stunde 60 Minuten hat = 6 Minuten)
1*6 = 6 Minuten
...etc

MFG
Alti

EDIT:
Um Nur auf die Minuten zu kommen, machst du ein
PHP:
$explode = explode('.', $stundenmitkommaminuten);
kA wie die Var bei dir heißt, und dann musst du folgendes machen:
PHP:
$minuten = $explode[1]*6;
Dann musst du $minuten nur noch ausgeben.
 
Hier die komplette Umrechnung die auch alle Problemfälle beheben sollte


// 1. Definieren der Zeit
$meine_zeit = 13.25;
// 2. hier trenne ich die zeit in zwei teile auf
$ausschnitt = explode(".",$meine_zeit);
// 3. ich mache aus den Minuten eine 0. anzeige in diesem Beispiel 0.25
$zahl_hinter_komma = "0.".$ausschnitt[1];
// 4. das ganze wird umgerechnet in wirkliche Minuten
$minuten = $zahl_hinter_komma*0.6;
// 5. die Zahl wird gerundet
$minuten_gerundet = round($minuten,2);
// 6. das 0. welches im punkt 3 hinzugefügt wird entfernen wir wieder
$minuten_gerundet_end = explode(".", $minuten_gerundet);
// 7. Falls der wert 0.5 ist dies würde 0.3 geben, das die Anzeige nun am Schluss nicht 13:3 anzeigt fügen wir eine 0 hinten an
if (strlen($minuten_gerundet_end[1]) == 1) {
$minuten_gerundet_end[1] = $minuten_gerundet_end[1]."0";
}
// 8. Die Stunden werden wieder mit den Minuten verbunden für eine schöne Anzeige
print $ausschnitt[0].":".$minuten_gerundet_end[1];

Output:

13:15
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
Zurück
Oben