Php,mysql,javascript visszaszámláló hiba

Php,mysql,javascript visszaszámláló hiba
2011-07-27T21:32:48+02:00
2011-07-28T13:44:53+02:00
2022-11-22T15:20:37+01:00
WarriorKiller07
Sziasztok!
Készítettem egy visszaszámlálót php+mysql és javascripttel,de az a gond,hogyha két időpontot kivonok egymásból,de más napon,akkor a visszaszámláló azt érzékeli mintha már lejárt volna az idő.
Pl. 2011-07-27 21:23:44-et átalakítok time to seccel és 2011-07-28 09:23:44-et is,aztán kivonom egymásból akkor -másodpercet kapok így folyamatosan frissítődik az oldal és nem is számol.Itt van a kód:


$munkak ="UPDATE users SET mukora='".date('Y-m-d H:i:s')."' WHERE jelszo='".$_COOKIE['Userp']."' and nick='".$_COOKIE['Usern']."'"; mysql_query($munkak); $monc1 = "SELECT mukora,mukora1,kredit,szilicium,mukszil,mukredo FROM users WHERE jelszo='".$_COOKIE['Userp']."' and nick='".$_COOKIE['Usern']."'"; $results = mysql_query($monc1); while(list($mukora,$mukora1,$kredit,$szilicium,$mukszil,$mukredo) = mysql_fetch_row($results)){ $muk1="SELECT TIME_TO_SEC('".$mukora."')"; $muk2="SELECT TIME_TO_SEC('".$mukora1."')"; $bösz = mysql_query($muk1); $bösz2 = mysql_query($muk2); while(list($muk1) = mysql_fetch_row($bösz)){ while(list($muk2) = mysql_fetch_row($bösz2)){ $mukora3=$muk2-$muk1; echo "$mukora3"; } } ?> <script> fut="" ido=<?=$mukora3 ?> // Ide a php írja be a számolandó mp-et. function szamol() { ido-- if(ido>0) { mp=ido%60 p=(ido-mp)/60 document.getElementById('ide').innerHTML=((p<10)?"0":"")+p+":"+((mp<10)?0:"")+mp } else { clearInterval(fut) document.getElementById('ide').innerHTML="" location.href="http://orbiterbattle.uw.hu/login/nightjob.php" } } </script> <div id="ide">Töltés...</div> <? if($mukora>$mukora1) { $kredo=$mukredo+$kredit; $szili=$mukszil+$szilicium; echo "$kredo<br> $szili"; $jutalom ="UPDATE users SET kredit='".$kredo."',szilicium='".$szili."',mukora='0000-00-00 00:00:00',mukora1='0000-00-00 00:00:00',mukszil=0,mukredo=0 WHERE jelszo='".$_COOKIE['Userp']."' and nick='".$_COOKIE['Usern']."'"; mysql_query($jutalom); } } }

$mukora1 a 12 órával későbbi idő $mukroa pedig a jelenlegi ami minden frissítésnél megváltozik.
Ha azt kérdeznétek miért ne 12*3600 másodperctől számoljon vissza,akkor az a válaszom,h a felhasználó adja meg az órákat 1-től 12-ig.
Mutasd a teljes hozzászólást!
Na keresgéltem neten és megtaláltam a timediff függvényt,így megtudtam oldani: )
A jelenlegi kód:


$munkak ="UPDATE users SET mukora='".date('Y-m-d H:i:s')."' WHERE jelszo='".$_COOKIE['Userp']."' and nick='".$_COOKIE['Usern']."'"; mysql_query($munkak); $monc1 = "SELECT mukora,mukora1,kredit,szilicium,mukszil,mukredo FROM users WHERE jelszo='".$_COOKIE['Userp']."' and nick='".$_COOKIE['Usern']."'"; $results = mysql_query($monc1); while(list($mukora,$mukora1,$kredit,$szilicium,$mukszil,$mukredo) = mysql_fetch_row($results)){ function timeDiff($firstTime,$lastTime) { // convert to unix timestamps $firstTime=strtotime($firstTime); $lastTime=strtotime($lastTime); // perform subtraction to get the difference (in seconds) between times $timeDiff=$lastTime-$firstTime; // return the difference return $timeDiff; } //Usage : ?> <script> ido= <? echo timeDiff("$mukora","$mukora1"); ?> // Ide a php (vagy js számolás) írja be a számolandó mp-et. fut="" idok=new Array(60,60,24) idoegys=new Array("",":",":","nap") tar=new Array(0,0,0,0,0) function szamol() { ido-- if(ido>0) { ido2=ido for(i=0;i<idok.length;i++) { tar[i]=ido2%idok[i] ido2=(ido2-tar[i])/idok[i] } tar[i]=ido2 ki="" kell=false for(i=idoegys.length-1;i>=0;i--) { kell=kell || (tar[i]!=0) if(kell) ki+=" "+tar[i]+" "+idoegys[i] } document.getElementById('ide').innerHTML=ki } else { clearInterval(fut) document.getElementById('ide').innerHTML="" location.href="http://orbiterbattle.uw.hu/login/nightjob.php" } } </script> <div id="ide">Töltés...</div> <form action="nightjob.php" method="post" name="kuld1" id="kuld1"> Ha f&eacute;lbeszak&iacute;tod a műszakod,akkor nem kapsz fizet&eacute;st!<br /> <input type="submit" name="kuld1" id="kuld1" value="Mégse"/> <? if (isset($_POST['kuld1'])) { $megse="UPDATE users SET mukora='0000-00-00 00:00:00',mukora1='0000-00-00 00:00:00',mukszil=0,mukredo=0 WHERE jelszo='".$_COOKIE['Userp']."' and nick='".$_COOKIE['Usern']."'"; mysql_query($megse); header("Location: nightjob.php"); } ?> </form> <? if($mukora>$mukora1) { $kredo=$mukredo+$kredit; $szili=$mukszil+$szilicium; echo "$kredo<br> $szili"; $jutalom ="UPDATE users SET kredit='".$kredo."',szilicium='".$szili."',mukora='0000-00-00 00:00:00',mukora1='0000-00-00 00:00:00',mukszil=0,mukredo=0 WHERE jelszo='".$_COOKIE['Userp']."' and nick='".$_COOKIE['Usern']."'"; mysql_query($jutalom); } } } } ?>
Mutasd a teljes hozzászólást!

  • Most lehet, hogy én értem félre de persze, hogy negatív értéket kapsz ha egy kisebből vonsz ki egy nagyobbat. Az lehet, hogy az első dátum órája nagyobb mint a másodiké, de a második dátum 28., míg az első 27.

    Ha nem érdekel az év, nap, hónap, akkor azokkal ne számolj. (vágd le őket és csak az óra, perc és másodperc értékekkel számolj)

    Amúgy, azoknál akiknél a cookie nincs engedélyezve, mi történik? Mert az sql utasítások biztos hibát fognak dobni.
    Mutasd a teljes hozzászólást!
  • stego,rosszul írtam le:
    a nagyobból vonom ki a kisebbet,de a time to sec csak az óra:perc:másodpercet alakítja át a napot évet és hónapot nem.
    Ezért megy sajnos minuszba.Nekem csak annyit kéne megmondani,h van-e valami más,amivel áttudnám alakítani az évet is másodperccé.
    A honlap: www.orbiterbattle.uw.hu
    Ha itt beregisztrált elmész éjszakai műszakra,és 12 órára,akkor látni fogod,hogy minusz időt dob ki,ugyanis (2011-07-28)12:22 másodperc átalakítva nagyobb mint (2011-07-29)00:22.

    Ha pedig a cookiek nincsenek engedélyezve,akkor nem tud belépni egyáltalán.
    Mutasd a teljes hozzászólást!
  • Na keresgéltem neten és megtaláltam a timediff függvényt,így megtudtam oldani: )
    A jelenlegi kód:


    $munkak ="UPDATE users SET mukora='".date('Y-m-d H:i:s')."' WHERE jelszo='".$_COOKIE['Userp']."' and nick='".$_COOKIE['Usern']."'"; mysql_query($munkak); $monc1 = "SELECT mukora,mukora1,kredit,szilicium,mukszil,mukredo FROM users WHERE jelszo='".$_COOKIE['Userp']."' and nick='".$_COOKIE['Usern']."'"; $results = mysql_query($monc1); while(list($mukora,$mukora1,$kredit,$szilicium,$mukszil,$mukredo) = mysql_fetch_row($results)){ function timeDiff($firstTime,$lastTime) { // convert to unix timestamps $firstTime=strtotime($firstTime); $lastTime=strtotime($lastTime); // perform subtraction to get the difference (in seconds) between times $timeDiff=$lastTime-$firstTime; // return the difference return $timeDiff; } //Usage : ?> <script> ido= <? echo timeDiff("$mukora","$mukora1"); ?> // Ide a php (vagy js számolás) írja be a számolandó mp-et. fut="" idok=new Array(60,60,24) idoegys=new Array("",":",":","nap") tar=new Array(0,0,0,0,0) function szamol() { ido-- if(ido>0) { ido2=ido for(i=0;i<idok.length;i++) { tar[i]=ido2%idok[i] ido2=(ido2-tar[i])/idok[i] } tar[i]=ido2 ki="" kell=false for(i=idoegys.length-1;i>=0;i--) { kell=kell || (tar[i]!=0) if(kell) ki+=" "+tar[i]+" "+idoegys[i] } document.getElementById('ide').innerHTML=ki } else { clearInterval(fut) document.getElementById('ide').innerHTML="" location.href="http://orbiterbattle.uw.hu/login/nightjob.php" } } </script> <div id="ide">Töltés...</div> <form action="nightjob.php" method="post" name="kuld1" id="kuld1"> Ha f&eacute;lbeszak&iacute;tod a műszakod,akkor nem kapsz fizet&eacute;st!<br /> <input type="submit" name="kuld1" id="kuld1" value="Mégse"/> <? if (isset($_POST['kuld1'])) { $megse="UPDATE users SET mukora='0000-00-00 00:00:00',mukora1='0000-00-00 00:00:00',mukszil=0,mukredo=0 WHERE jelszo='".$_COOKIE['Userp']."' and nick='".$_COOKIE['Usern']."'"; mysql_query($megse); header("Location: nightjob.php"); } ?> </form> <? if($mukora>$mukora1) { $kredo=$mukredo+$kredit; $szili=$mukszil+$szilicium; echo "$kredo<br> $szili"; $jutalom ="UPDATE users SET kredit='".$kredo."',szilicium='".$szili."',mukora='0000-00-00 00:00:00',mukora1='0000-00-00 00:00:00',mukszil=0,mukredo=0 WHERE jelszo='".$_COOKIE['Userp']."' and nick='".$_COOKIE['Usern']."'"; mysql_query($jutalom); } } } } ?>
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd