Wer erklährt mir warum mein Script so funktioniert?
Andreas
- php
Hallo!
Irgendwie komme ich mit den verschiednen Zeitformaten, Zonen und Sprachen nicht mehr klar. Jedenfalls war es mein Anliegen, ein Script zu schreiben, welches mir schön einen Countdowsn anzeigt. Das habe ich jetzt geschafft, aber das komische, ich verstehe es selbst nicht warum es jetzt geht!!!
Ist leider eine etwas komplizierte Kombination aus PHP/MySQL und Javascript/DHTML.
Function DateDiff ($interval, $date1,$date2) {
$timedifference = $date2 - $date1;
switch ($interval) {
case "w":
$retval = bcdiv($timedifference ,604800);
break;
case "d":
$retval = bcdiv( $timedifference,86400);
break;
case "h":
$retval = bcdiv ($timedifference,3600);
break;
case "n":
$retval = bcdiv( $timedifference,60);
break;
case "s":
$retval = $timedifference;
break;
}
return $retval;
}
$query = "SELECT * FROM auktionen WHERE ID = 1 ";
$res = mysql_query($query, $m_link);
if (!$res)
die("Anfrage $query scheitert.<br>\n");
$auktion=mysql_fetch_array($res);
$currenttime = time();
$newtime = strtotime ($auktion[Ende]);
$diff = DateDiff ("s",$currenttime ,$newtime);
?>
<html>
<head>
<title>net - auctions</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript" src="dhtml.js"></script>
<script type="text/javascript">
<!--
<?php printf("diff = '%s';\n", addslashes($diff)); ?>
var Zeit2 = new Date();
var AbsolutDann = Zeit2.getTime() + (diff*1000);
function toSt(n) {
s=""
if(n<10) s+="0"
return s+n.toString();
}
function ZeitAnzeigen() {
var Zeit = new Date();
var AbsolutJetzt = Zeit.getTime();
var count = Math.floor((AbsolutDann - AbsolutJetzt)/1000);
var Sekunde=toSt(count%60);
count=Math.floor(count/60);
var Minute=toSt(count%60);
count=Math.floor(count/60);
var Stunde=toSt(count%24);
count=Math.floor(count/24);
var Tag=count;
if(Tag=0) {Tage = " ";}
if(Tag=1) {Tage = " " + Tag +" Tag";}
if(Tag>1) {Tage = " " + Tag +" Tage";}
var Uhrzeit = Stunde + ":" + Minute + ":" + Sekunde;
if(DHTML) {
if(NS) setCont("id","Uhr",null,"<span class="Uhr">" + Uhrzeit + "</span>");
else setCont("id","Uhr",null,Uhrzeit);
}
else return;
window.setTimeout("ZeitAnzeigen()",1000);
}
//-->
</script>
Also, hab nur das dringelassen, mit der Zeit zu tun hat. Mein Problem ist jetzt folgendes, dass die Zeitdifferenz, z.B. wenn diese definitiv nur 5 Minuten beträgt, müßte $diff doch 5*60=300 errechnen, oder? Stattdessen steht da was von 86344 oder so ähnlich.
Nun gut, denke ich mir, ist wohl was falsch. Aber diesen Wert übergebe ich ja dann an das Javascript(steht da auch im Quelltext) und verwende den für die Differenz, also aktuelle Zeit plus 86344(Bsp.) Sekunden, und man höre und Staune, die Anzeige gibt genau den richtigen Wert aus!!!
Klar, schön für mich, nur gerne würde ich wenigstens das was ich selbst programmiere verstehen ;-)
Weiß jemand, wo vielleicht mein Denkfehler liegt, bzw. kann das erklähren???
Grüsse
Andreas
Sorry, aber das ist jetzt total OT!!!
Also ich bin beistert!!!
Seid 5 Jahren Internet und drei Jahren SelfHTML ist das die erste Frage diesbetreffend die ein Poster schreibt in der er frägt WARUM etwas geht.
LOOOOOL
:o)
Gruss,
CS
Seid 5 Jahren Internet und drei Jahren SelfHTML ist das die erste Frage diesbetreffend die ein Poster schreibt in der er frägt WARUM etwas geht.
<;-)>
Hmmhh!
Ein ziemlich zweischneidiges Schwert. ;-)
Wenn _ich_ etwas fabriziere, weiss ich in der Regel, warum es so und nicht so geht. Wenn _ich_ etwas nicht selbst fabriziere, koennte ich Probleme bei der Analyse bekommen. Wenn _ich_ etwas verklamuesern soll was ich nicht selbst fabrizierte, muesste ich mich jetzt in die Materie vertiefen, wozu ich allerdings jetzt im Augenblick bei einer funktionierenden Loesung keinen triftigen Grund sehe. Man nehme entsprechende Lektuere zur Hand.
</;-)>
Wilhelm
Du verwirrst mich ja total Wilhelm!!!
Hallo!
Ihr seid wirklich lustig! Hab inzwischen den Fehler, aber ich hatte bevor ich gepostet hatte schon sehr lange versucht diesen zu finden, denn richtig war das so definitiv nicht! Mal wieder ein Flüchtigkeitsfehler, und zwar hatte ich irgendwann gestern wohl das Datum in der mySQL Tabelle um noch einen Tag weiter vor datiert, daher die große Differenz, jetzt ist alles klar!
Aber das konntet Ihr natürlich jetzt nicht sehen. Und was hätte ich da bitte für Lektüre nehmen sollen, das hätte alles sein können! Ich war ja sicher das alles stimmte, war ja auch so.
Sorry für das sinnlose Posting!
Andreas
Ihr seid wirklich lustig!
Humor ist wenn man trotzdem lacht.
[] Ich habe dieses Konstrukt <;-)> zur Kenntnis genommen
[] Ich habe dieses Konstrukt <;-)> nicht bemerkt.
Wilhelm
Hallo
Seid 5 Jahren Internet und drei Jahren SelfHTML ist das die erste Frage diesbetreffend die ein Poster schreibt in der er frägt WARUM etwas geht.
Es ist aber nicht die erste diesbezügliche Frage in diesem Forum.
Die erste, die ich hier mitbekam, steht hier:
http://forum.de.selfhtml.org/archiv/2000_1/t11047.htm.
Tschö Matti
Hi!
Die erste, die ich hier mitbekam, steht hier:
http://forum.de.selfhtml.org/archiv/2000_1/t11047.htm.
Ich gehe mit und erhoehe um 4 Quartale: </archiv/1999_1/t01885.htm>. ;-)
So long