php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 12.11.2011, 15:41  
Neuer Benutzer
 
Registriert seit: 12.11.2011
Beiträge: 1
PHP-Kenntnisse:
Anfänger
MacBryan befindet sich auf einem aufstrebenden Ast
Standard Countdown reset/replay

Guten Tag,


bin relativ neu im Thema PHP etc..
Meine Frage lautet, wie schaffe ich es einen Countdown nach z.B 15 Tagen, von Hand aus, durch einen Button z.b, neustarten zu können.
Der Reset Button sollte erst nach Ablauf der Zeit erscheinen.

Irgendwie komme ich da leider nicht weiter hoffentlich kann mir jemand helfen.


Vielen danke und schönes Wochenende
MacBryan ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 12.11.2011, 15:52  
Erfahrener Benutzer
 
Registriert seit: 02.09.2009
Beiträge: 1.019
PHP-Kenntnisse:
Fortgeschritten
mquadrat befindet sich auf einem aufstrebenden Ast
Standard

Zum Thema Countdowns mit Javscript dürfte es gaaaanz viele Tutorials geben. Du brauchst

- das Wissen wie ein Timer in Javascript funktioniert
- Wie du die aktuelle Zeit mit einer festgelegten Zeit vergleichst
- Wie du ein Element sichtbar / unsichtbar machst.
__________________
Wir suchen PHP Entwickler (Vollzeit) im Raum Darmstadt / Rhein-Main. Infos via E-Mail mueller@new-frontiers.de
mquadrat ist offline   Mit Zitat antworten
Alt 12.11.2011, 16:34  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.865
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Zitat:
Zitat von MacBryan Beitrag anzeigen
Guten Tag,


bin relativ neu im Thema PHP etc..
Meine Frage lautet, wie schaffe ich es einen Countdown nach z.B 15 Tagen, von Hand aus, durch einen Button z.b, neustarten zu können.
Der Reset Button sollte erst nach Ablauf der Zeit erscheinen.

Irgendwie komme ich da leider nicht weiter hoffentlich kann mir jemand helfen.


Vielen danke und schönes Wochenende
Wir gehen jetzt mal von dem Begriff "Countdown" weg und nähern uns dem Begriff "Event".

Rein von der Machbarkeit her, ist ein Javascript-Timer immer auf die Run-Time der Aufgerufenen Webseite begrenzt. Wenn der Nutzer ( du ) das Fenster schließt endet auch der Timer. Ergo solltest du den Startzeitpunkt des Events auf dem Server von dem die Seite kommt hinterlegen und entsprechend eine Webseite zusammenbasteln die das Verhalten aufzeigt das du möchtest. Selbst "Live-Countdowns" sind so realisierbar, dort wird auch der Startwert des Timers beim generieren der Seite errechnet und auf der Seite "pseudo-synchron" weitergezählt.

Im Prinzip ist dafür nur PHP notwendig, ein Erklärender Einstieg wäre folgender eigenständiger Quellcode:

index.php
PHP-Code:
<?php

// configure
$relativeTimeOnReset '2 hours'// add 2 hours to now

// web value fetch
$action = isset($_GET['action']) ? $_GET['action'] : false;

switch ( 
$action ) {
   case 
'resetTimer':
      
$curTime strtotime($relativeTimeOnResettime());
      
file_put_contents('event.time.storage'$curTime);
      break;
   default:
      if ( 
file_exists('event.time.storage') )
         
$curTime = (integer)file_get_contents('event.time.storage');
      else {
         
$curTime strtotime($relativeTimeOnResettime());
         
file_put_contents('event.time.storage'$curTime);
      }
}

$now time();

if ( 
$now $curTime ) {
   
$dateControl date_create_from_format('U'$now);
   
$dateData $dateControl->diff(date_create_from_format('U'$curTime));

   
$display = array();
   if ( 
$dateData->days ) { 
      
$display[] = $dateData->days
         
.( $dateData->days ' Tage' ' Tag' );
   }
   if ( 
$dateData->) {
      
$display[] = $dateData->h
         
.( $dateData->' Stunden' ' Stunde' );
   }
   if ( 
$dateData->) {
      
$display[] = $dateData->i
         
.( $dateData->' Minuten' ' Minute' );
   }
   if ( 
$dateData->) {
      
$display[] = $dateData->s
         
.( $dateData->' Sekunden' ' Sekunde' );
   }

   
$control '<span id="countdown">'.join(' '$display).' bis zum Resetknopf</span>';
}
else {
   
$control '<a href="./index.php?action=resetTimer">RESET IT!</a>';
}

?><!DOCTYPE html>
<html lang="de">
   <head>
      <title>Timer Test</title>
      <meta charset="utf-8" />
   </head>
   <body>
      <?php echo $control?>
   </body>
</html>
Wie du an dem Quellcode unschwer erkennen können solltest, wird dort eine Datei geschrieben ( insofern sie nicht existiert, die einen Timestamp innehat der 2 Stunden in der Zukunft liegt. Ein Aufruf des Scripts gibt solange die Zeit-Periode bis zum Ende des Events aus, bis das Script erkennt das der Zeitpunkt eingetroffen ist, erst dann erscheint ein Link zum Reset des Timers.

Einzig das manuelle Resetten per URL ist "lazy" implementiert, es ist erlaubt, sollte aber im realen Betrieb verhindert werden.

Das Beispiel soll dir Zeigen, wie genau du ( im Zweifelsfall ) Daten auf dem Server hinterlegen kannst, die Abfrage der Zeit-Periode könntest du Beispielsweise per AJAX vollziehen, oder den Timestamp an ein Javascript als Preset ausliefern, der den Aktuellen Timestamp periodisch gegenrechnet und die Zeitperiode ins DOM einfügt ( innerhalb des DOMs periodisch updated ).
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Problem mit Countdown st0n3d JavaScript, Ajax und mehr 10 04.03.2011 19:00
Javascript in PHP Funktioniert nicht.. COUNTDOWN Elias96 PHP Tipps 2010 33 08.10.2010 16:49
Countdown Funktion mehrmals ausführen secretwz JavaScript, Ajax und mehr 3 17.06.2010 12:17
Serveruhrzeit -> Countdown phplars PHP Tipps 2009 10 30.10.2009 17:09
Countdown der.... xenus HTML, Usability und Barrierefreiheit 0 02.10.2006 10:07
php in ein JavaScript Countdown einbinden! Boennchen PHP Tipps 2005 11 26.04.2005 13:41
Wie kann ich den Countdown von der Stautsleiste in den Body HTML, Usability und Barrierefreiheit 17 25.04.2005 22:04
DB Countdown? TRW PHP Tipps 2005 2 06.01.2005 19:00
[Erledigt] JavaScript + PHP (SQL) Countdown HTML, Usability und Barrierefreiheit 5 23.12.2004 14:01
problem (countdown) HTML, Usability und Barrierefreiheit 8 07.11.2004 23:08
[Erledigt] Countdown problem! HTML, Usability und Barrierefreiheit 3 28.07.2004 11:59
Javascript countdown mal anders - erledigt Ohrwurm83 HTML, Usability und Barrierefreiheit 4 02.07.2004 23:35
javascript countdown in while scheife Ohrwurm83 PHP Tipps 2004 1 02.07.2004 16:50
[Erledigt] Countdown HTML, Usability und Barrierefreiheit 2 27.06.2004 02:32

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
replay, php reset, php timer start reset button

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:45 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum