Autor | Zpráva | ||
---|---|---|---|
pavlat Profil |
#1 · Zasláno: 19. 6. 2013, 08:38:10
Dobrý den potřeboval bych pomom mám script (časovač). který funguje jak má až na to že když dám f5 vypne se a musim znova zadat datum a čas chtěl bych at to běží dokad čas nauplyne a pka se může nastavit novej.
<script type="text/javascript"> // Stop date/time must be after // current date/time. function dateDiff(){ // Gets a stop date/time from form 'f' // Caution: zero validation on input var f = document.forms['dateFields']; var s = new Date( f.Yr.value, f.Mn.value - 1, f.Dy.value, f.Hr.value, f.Min.value, f.Sec.value ); var ele = document.getElementById('result') || document.all('result'); var n = new Date(); if (s < n) { ele.innerHTML = '<b>Událost nastala!!!! Přidejte další</b><br>' return false; } // Diff years var dyr = s.getFullYear() - n.getFullYear(); s.setFullYear(s.getFullYear() - dyr); if (s < n) dyr -= 1; // Diff months var dmn = (s.getMonth() - n.getMonth() + 12) % 12; s.setMonth(n.getMonth()); if (s < n) { s.setMonth(+s.getMonth() + 1); dmn -=1; if (dmn < 0) dmn -= -12; } var tsec = Math.floor((s.getTime() - n.getTime()) / 1000); var dsec = Math.floor(tsec % 60); var dmin = Math.floor(tsec/60 % 60); var dhr = Math.floor(tsec/3600 % 24); var ddy = Math.floor(tsec/86400); ele.innerHTML = 'Zbývá:' + ' ' + dyr + ' year' + addS(dyr) + ', ' + dmn + ' month' + addS(dmn) + ', ' + ddy + ' day' + addS(ddy) + ', ' + dhr + ' hour' + addS(dhr) + ', ' + dmin + ' minute' + addS(dmin) + ', ' + dsec + ' second' + addS(dsec); setTimeout("dateDiff()", 200); } function addS(x) { return (x != 1)? 's':''; } </script> </head><body> <form action="" name="dateFields"> <input type="text" size="8" name="Yr" value="2013">Year<br> <input type="text" size="8" name="Mn" value="06">Month<br> <input type="text" size="8" name="Dy" value="19">Day<br> <input type="text" size="8" name="Hr" value="12">Hour<br> <input type="text" size="8" name="Min" value="00">Min<br> <input type="text" size="8" name="Sec" value="00">Sec<br> <input type="button" value="Calc" onclick="dateDiff()"> <input type="reset"> </form> |
||
Joker Profil |
#2 · Zasláno: 19. 6. 2013, 09:28:28
pavlat:
Musíte si někam uložit to cílové datum. Například do cookie, v moderních prohlížečích do localStorage. |
||
pavlat Profil |
#3 · Zasláno: 19. 6. 2013, 09:29:24
Joker:
Ale to uvidim jen já ne? potřeboval bych aby to viděli všichni. |
||
Joker Profil |
#4 · Zasláno: 19. 6. 2013, 09:37:53
pavlat:
„potřeboval bych aby to viděli všichni.“ Tak v tom případě se hodnoty musí ukládat a číst ze serveru. |
||
pavlat Profil |
#5 · Zasláno: 19. 6. 2013, 09:40:42 · Upravil/a: pavlat
Joker:
A to delam jak? jsem myslel nějakej externí soubor nebo mysql. |
||
pavlat Profil |
#6 · Zasláno: 19. 6. 2013, 11:59:51
Jak jsem dostanu php promennou aby to fungovala $yr potrebuju ji dostat misto f.Yr.value,
var s = new Date( f.Yr.value, f.Mn.value - 1, f.Dy.value, f.Hr.value, f.Min.value, f.Sec.value ); |
||
honzaik Profil |
#7 · Zasláno: 19. 6. 2013, 12:05:16
na to budeš potřeba použit i něco jinýho než JS, např php
|
||
pavlat Profil |
#8 · Zasláno: 19. 6. 2013, 12:06:34
honzaik:
To já vim mam to takle <?php $vypis = mysql_query("SELECT `ac`, `yr`, `mo`, `de`, `hr`, `mi`, `sc` FROM `users` where id=$id"); while ($polozka = mysql_fetch_array($vypis)) $ac = $polozka["ac"] AND $yr = $polozka["yr"] AND $mo = $polozka["mo"] AND $de = $polozka["de"] AND $hr = $polozka["hr"] AND $mi = $polozka["mi"] AND $se = $polozka["se"]; ?> <script type="text/javascript"> // Stop date/time must be after // current date/time. function dateDiff(){ // Gets a stop date/time from form 'f' // Caution: zero validation on input var f = document.forms['dateFields']; var s = new Date( f.Yr.value, f.Mn.value - 1, f.Dy.value, f.Hr.value, f.Min.value, f.Sec.value ); |
||
peta Profil |
Pri zadani noveho data odesles na server datum k ulozeni a v navratove funkci spustis casovac. Javascript ajax. Tohle forum je toho plne, staci vyhledavat. Google je toho plne, staci vyhledavat.
Mozna by mohlo fungovat toto. <script> function uloz(s) { var img = new Image(); img.src = 'uloz.php?datum=' + s; } var s; s = 0<?php include('nacti.php'); ?> * 1; // nacti pri obnoveni stranky pomoci php s = s>0 ? s : new Date( ... ); spust_casovas(s); </script> s= 0 * 1;
include('nacti.php'); - include bych pouzil, abych nemusel resit jiny php kod, ale nevim, zda se tak prenesou session, nezkousel jsem to. Nebo si najsi ajax pres jquery, iframe a pod. --- V tom kodu nemas jedine echo, ktere by hodnotu nalezenou pomoci SELECT vypsalo do html kodu. Pouze to vse nejak poskladas do promenne $ac. |
||
pavlat Profil |
#10 · Zasláno: 19. 6. 2013, 12:58:36
tak slava.. skoro to je doma...Mam to takel..a chci aby to jelo furt hned jak se stranka nacte at se to spusti ..Poaradite mi?
<script type="text/javascript"> // Stop date/time must be after // current date/time. function dateDiff(){ // Gets a stop date/time from form 'f' // Caution: zero validation on input var f = document.forms['dateFields']; var s = new Date("<?php echo $me;?>/<?php echo $de;?>/<?php echo $yr;?> <?php echo $ho;?>:<?php echo $mi;?>:<?php echo $se;?>"); var ele = document.getElementById('result') || document.all('result'); var n = new Date(); if (s < n) { ele.innerHTML = '<b>Událost nastala!!!! Přidejte další</b><br>' return false; } // Diff years var dyr = s.getFullYear() - n.getFullYear(); s.setFullYear(s.getFullYear() - dyr); if (s < n) dyr -= 1; // Diff months var dmn = (s.getMonth() - n.getMonth() + 12) % 12; s.setMonth(n.getMonth()); if (s < n) { s.setMonth(+s.getMonth() + 1); dmn -=1; if (dmn < 0) dmn -= -12; } var tsec = Math.floor((s.getTime() - n.getTime()) / 1000); var dsec = Math.floor(tsec % 60); var dmin = Math.floor(tsec/60 % 60); var dhr = Math.floor(tsec/3600 % 24); var ddy = Math.floor(tsec/86400); ele.innerHTML = 'Zbývá:' + '. ' + dyr + addS(dyr) + ':rok' + '. ' + dmn + addS(dmn) + ':měs' + ', ' + ddy + addS(ddy) + ':day' + ', ' + dhr + addS(dhr) + ':hod' + ', ' + dmin + addS(dmin) + ':min' + ', ' + dsec + addS(dsec) + ':s'; setTimeout("dateDiff()", 200); } function addS(x) { return (x != 1)? '':''; } |
||
_es Profil |
#11 · Zasláno: 19. 6. 2013, 13:09:14
pavlat:
Aký tam má zmysel funkcia addS ?
|
||
pavlat Profil |
#12 · Zasláno: 19. 6. 2013, 13:11:47 · Upravil/a: pavlat
ta pridava za dny roky a mesice s....jako days.....ale to jeste nemam udelany.
Pardon vyreseno... Dekuji vsem za pomoc :-) |
||
peta Profil |
#13 · Zasláno: 19. 6. 2013, 14:51:15
echo sprintf("%s/%s/%s %s:%s:%s",$me,$de,$yr,$ho,$mi,$se); echo "$me/$de/$yr $ho:$mi:$se"; |
||
pavlat Profil |
#14 · Zasláno: 19. 6. 2013, 15:24:22 · Upravil/a: pavlat
Neumim to...
peta: Pomoch bys mi to vyřešit nějak: |
||
peta Profil |
#15 · Zasláno: 19. 6. 2013, 15:37:29
Tak se tim netrap, pouzij, co umis. Mozna je to lepsi reseni. Ja nic takoveho zatim nepotreboval.
|
||
Časová prodleva: 11 let
|
0