Hi Big Community,
habe ein riesen Problem... ich habe NUll plan von JS, aber brauche es für mein browsergame.
mein prob:
cih wollte die endbauzeit eines gebäudes aus der datenbank lesen und es mithilfe von JS ausgeben,
wie lange es noch dauert bis das gebäude fertig ist. ich habe ein js skript schon bekommen,
aber leider weis ich net wie ich des anwenden soll... BITTE HILFT MIR !
es funktioniert einfach nicht...
Ich bedanke mich herzlich für eure Hilfen/Antworten!!!
MfG
Big A
habe ein riesen Problem... ich habe NUll plan von JS, aber brauche es für mein browsergame.
mein prob:
cih wollte die endbauzeit eines gebäudes aus der datenbank lesen und es mithilfe von JS ausgeben,
wie lange es noch dauert bis das gebäude fertig ist. ich habe ein js skript schon bekommen,
aber leider weis ich net wie ich des anwenden soll... BITTE HILFT MIR !
PHP-Code:
<? function EndBuildingTime() {
global $player;
global $sessionid;
$sql_ergebnis = mysql_query("SELECT ID, Picture, Name, Level, EndBuildingTime FROM buildings
WHERE Owner = '$player' AND EndBuildingTime != '0000-00-00 00:00:00'");
if (mysql_num_rows($sql_ergebnis) > 0) {
$id = mysql_result($sql_ergebnis, 0, 'ID');
$picture = mysql_result($sql_ergebnis, 0, 'Picture');
$name = mysql_result($sql_ergebnis, 0, 'Name');
$level = mysql_result($sql_ergebnis, 0, 'Level');
$endbuildingtime = mysql_result($sql_ergebnis, 0, 'EndBuildingTime');
preg_match("#(\d+)-(\d+)-(\d+) (\d+) : (\d+) : (\d+)#", $endbuildingtime, $matches);
echo "<script language="JavaScript">
// Ziel-Datum in MEZ; Exemplarische Werte zum test.
var jahr=".$matches[1]."; // Wert muss aus der Datenbank geholt werden
var monat=".$matches[2]."; // Wert muss aus der Datenbank geholt werden
var tag=".$matches[3]."; // Wert muss aus der Datenbank geholt werden
var stunde=".$matches[4]."; // Wert muss aus der Datenbank geholt werden
var minute=".$matches[5]."; // Wert muss aus der Datenbank geholt werden
var sekunde=".$matches[6]."; // Wert muss aus der Datenbank geholt werden
var zielDatum=new Date(jahr,monat-1,tag,stunde,minute,sekunde);
function counter() {
startDatum=new Date(); // Aktuelles Datum
// Counter berechnen und anzeigen, bis Ziel-Datum erreicht ist
if(startDatum<=zielDatum) {
var jahre=0, monate=0, tage=0, stunden=0, minuten=0, sekunden=0;
// Jahre
if(startDatum<zielDatum) {
while(startDatum<zielDatum) {
if(startDatum.setFullYear(startDatum.getFullYear()+1) <= zielDatum) jahre++;
}
startDatum.setFullYear(startDatum.getFullYear()-1);
}
// Restliche Tage zum Monatsende ermitteln
var restTage=0;
var m=startDatum.getMonth();
if(m==1-1||m==3-1||m==5-1||m==7-1||m==8-1||m==10-1||m==12-1)
restTage=31-startDatum.getDate();
else if(m==4-1||m==6-1||m==9-1||m==11-1) restTage=30-startDatum.getDate();
else if(m==2-1) {
if(startDatum.getFullYear()%4==0 && (startDatum.getFullYear()%100!=0
|| startDatum.getFullYear()%400==0))
restTage=29-startDatum.getDate(); // Schaltjahr
else restTage=28-startDatum.getDate();
}
// Start- und Ziel-Tag merken und auf 1 setzen
var startTag=startDatum.getDate();
var zielTag=zielDatum.getDate();
startDatum.setDate(1);
zielDatum.setDate(1);
// Monate
if(startDatum<zielDatum) {
while(startDatum<zielDatum) {
if(startDatum.setMonth(startDatum.getMonth()+1)<=zielDatum) monate++;
}
startDatum.setMonth(startDatum.getMonth()-1);
}
// Tatsächlichen Start- und Ziel-Tag berücksichtigen
if(startDatum.getMonth()==zielDatum.getMonth()) {
if(startTag <= zielTag) startDatum.setDate(startTag);
else {
monate--;
tage=restTage+1;
}
}
else {
startDatum.setMonth(startDatum.getMonth()+1);
if(startTag >= zielTag) tage=restTage+1;
else {
monate++;
startDatum.setDate(startTag);
}
}
zielDatum.setDate(zielTag);
// Tage
restTage=Math.floor((zielDatum-startDatum)/(24*60*60*1000));
startDatum.setTime(startDatum.getTime()+restTage*24*60*60*1000);
tage+=restTage;
// Stunden
stunden=Math.floor((zielDatum-startDatum)/(60*60*1000));
startDatum.setTime(startDatum.getTime()+stunden*60*60*1000);
// Minuten
minuten=Math.floor((zielDatum-startDatum)/(60*1000));
startDatum.setTime(startDatum.getTime()+minuten*60*1000);
// Sekunden
sekunden=Math.floor((zielDatum-startDatum)/1000);
// Anzeige formatieren
if(jahre!=0)jahre=jahre+":";
if(monate!=0)monate=monate+":";
if(tage!=0)tage=tage+":";
if(stunden!=0)stunden=stunden+":";
minuten=minuten+":";
if(minuten<10) minuten="0"+minuten;
if(sekunden<10) sekunden="0"+sekunden;
document.counterform.counterinput.value=jahre+monate+tage+stunden+minuten+sekunden;
setTimeout('counter()',200);
}
// Anderenfalls keine aktive Bau-/Forschoption
else document.counterform.counterinput.value="";
}
</script>
<body onLoad=\"count()\"><table>";
echo "<tr><td>Der Ausbau von <img src=\"$picture\">
<a href=\"building.php?sessionid=$sessionid&building=$id\">"
. htmlentities($name) . "</a> auf Stufe " . ($level + 1) . " wird in"; ?><form name="counterform">
<p>
<input size="10" name="counterinput" readonly="counterinput">
</p>
</form>
<? echo "fertig sein.</td></tr>\r\n";
echo "</table><br>\r\n";
}
} ?>
Ich bedanke mich herzlich für eure Hilfen/Antworten!!!
MfG
Big A
Kommentar