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

Zeitberechnung

Status
Für weitere Antworten geschlossen.

Darki

Neues Mitglied
also ich arbeite gerade an einem script, in welchem man die koordinaten (x,y,z) des startpunktes eingibt, sowie des zieles.
zusäztlich wird noch eingegeben wie schnell das raumschiff fliegen kann

die entfernungsberechnung stimmt schon

aber bei der zeit:

ich möchte dass angezeigt wird in: TT:HH:MM:SS
das kann ich ja im prinzip mit if schleifen machen und überprüfen ob die zeit grösser ist als 60s, wenn ja soll er es in minuten umrechnen

mein problem ist jetzt mit der restberechung

ich möchte da stehen haben 12:30 dazu müsste ich aber von die 12.5 den rest rauskriegen dass die variablie $minute nur noch 12 enthält und mit dem rest dann die sekunden errechnert werden
ging irgendwie mit % zeichen, weiss aber nicht mehr genau

danke im vorraus für die hilfe

mfg darki
 
Werbung:
dafür gibt es in php die funktion floor;

[php:1:0282ec4436]
<?
// start werte und variablen
$rz = 232645; // rz = reise_zeit entspricht in deinem format 02:16:37:25
$tage = 0;
$stunden = 0;
$minuten = 0;
$sekunden = 0;
$temp = 0;

// rechenoperationen
$tage = floor($rz / (24*60*60)); // ergibt die tage;
$temp = $tage*24*60*60; // einen tag in sekunden umrechnen 24h*60m*60s die anderen formeln sollten sich dann ergeben.

$stunden = floor(($rz - $temp) / (60*60));
$temp = $temp + ($stunden*60*60);

$minuten = floor(($rz - $temp) / 60);
$temp = $temp + ($minuten*60);

$sekunden = $rz - $temp;

echo("Die Reise Zeit beträgt (t:s:m:s): "+$tage+":"+$stunden+":"+$minuten+":"+$sekunden;
?>
[/php:1:0282ec4436]
die formeln sind so in ordnung. habe den code aber nicht getestet, weil mein rechner neu ist und ich noch kein apache mit php drauf habe. können also sich kleinere syntaktische fehler eingeschlichen haben.

die funktion floor(zahl) ist eine php systemfunktion
 
Werbung:
damit die funktion noch etwas schneller wird, würde ich empfehlen die multiplikationen auszurechnen, da jede multiplikation CPU-Takte kostet. Ich habe sie so hingeschrieben, damit man die rechnungen nach vollziehen kann.

d.h. statt / (60*60) schreib / 3600
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben