need timer script (php)

Seite 1 von 2 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/need_timer_script_php_66099/page_1 - zur Vollversion wechseln!


bBU.CyTrobIc schrieb am 06.02.2003 um 12:38

hallo ich brauch ein script was sich alle 5 sekunden aktualisiert,
und folgendes tut:

die zeit runterrechnen vom heutigem Datum zum 1.1.2003 00:00 uhr
also genau jahreswechsel 2003-2004.

das aktuelle datum, der timer mit zeit und das enddatum sollen
sichtbar sein.

könnt mir wer hier so ein kleines script zur veranschaulichung machen ?
wäre echt nett denn ich bekomms einfach nicht hin.
formelasuzüge usw. nützen mir nicht viel da ich sie nicht zusammen
bekomme :( :)

vielen dank euch schonmal !!!

mfg Gerrit


atrox schrieb am 06.02.2003 um 12:39

wohl eher ein javascript/dhtml problem


noledge schrieb am 06.02.2003 um 12:41

meinst nicht den 1.1.2004? :confused:

was solls runterzählen? tage? sekunden?


vossi schrieb am 06.02.2003 um 12:45

ja das is ganz einfach

gib mir 10 minuten und es steht da ..
sonst machts keiner weil doppelarbeit hass ich!


atrox schrieb am 06.02.2003 um 12:47

ok.. vossi hat übernommen :)


vossi schrieb am 06.02.2003 um 12:59

Code: PHP
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
       <title>Countdown</title>
</head>
<body>
<?php
  $now_timestamp = time();
  $target_timestamp = mktime(0, 0, 0, 12, 31, 2003);
  $left_timestamp = $target_timestamp - $now_timestamp;
  
  $now_time = strftime("%d.%m.%Y | %H:%M", $now_timestamp);
  $target_time = strftime("%d.%m.%Y | %H:%M", $target_timestamp);
  $left_time = strftime("%d Tage %m Monate %H Stunden und %M Minuten verbleibend", $left_timestamp);
  
  echo "Heute: $now_time<br/>Jahreswechsel: $target_time<br/>verbleibende Zeit: $left_time";
?>
</body>
<script language="JavaScript">
  function doRefresh()
  {
      document.location.href = document.location.href;
  }

  window.setTimeout("doRefresh()", 5000);
</script>
</html>

ok .. soweit so gut.

bei der verbleibenden zeit ausgabe muss ich nochmal nachdenken .. ich geh jetzt kurz Pause machen (bin @ school) dann fix ich das


noledge schrieb am 06.02.2003 um 13:03

mach den refresh per <meta http-equiv="refresh" content="5"> - javascript is unnötig.

und bist du nicht einen tag zu früh? jahreswechsel ist 1.1.2004 0:00, nicht 31.12.2003 0:00


atrox schrieb am 06.02.2003 um 13:22

sorry, daß ich doch eingreife aber das geht wesentlich einfacher - und sogar ohne php - folgendes skript ist für IE5+ und ns6/mozilla:

Code:
<script>
function doZeitRefresh() {
  // fuer die uebersichtlichkeit in einzelne variablen aufgeschlüsselt:
  ziel=new Date(2004,0,1);
  jetzt=new Date();
  diff=ziel.getTime()-jetzt.getTime(); //mSek
  tage=Math.floor(diff/86400000);
  stunden=Math.floor(diff/3600000)%24
  min=Math.floor(diff/60000)%60;
  sek=Math.floor(diff/1000)%60;
  allsek=Math.floor(diff/1000);
  
  document.getElementById("zeitanzeige").innerHTML="insgesamt "+allsek+" sekunden - oder - "+tage+" tage, "+
              stunden+" stunden, "+min+" minuten und "+sek+" sekunden";
  window.setTimeout("doZeitRefresh()", 1000);
}
</script>

<body onload="doZeitRefresh()">

bis 1.1.2004 sind es <span id="zeitanzeige">(platzhalter)</span>


vossi schrieb am 06.02.2003 um 13:34

ja das meta refresh hab ich ganz vergessn.

dunno wie das mitn jahreswechsel genau is .. ich check das mal


vossi schrieb am 06.02.2003 um 14:54

Code: PHP
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<meta http-equiv="refresh" content="5">
<head>
       <title>Countdown</title>
</head>
<body>
<?php
  //Gewünschtes Jahr
  $year = 2003;

  //Aktuelle, gewuenschte und verbleibende Zeit
  $now_timestamp = time();
  $target_timestamp = mktime(0, 0, 0, 12, 31, $year);
  $left_timestamp = $target_timestamp - $now_timestamp;

  $now_datetime = strftime("%d.%m.%Y | %H:%M", $now_timestamp);
  $target_datetime = strftime("%d.%m.%Y | %H:%M", $target_timestamp);

  //Nachkomma Stellen abschneiden
  settype($left_seconds, 'integer');
  settype($left_minutes, 'integer');
  settype($left_hours, 'integer');

  settype($left_days, 'integer');
  settype($left_months, 'integer');
  
  //Aktuelle Daten
  $actual_month = strftime("%m", $now_timestamp);
  $actual_day = strftime("%d", $now_timestamp);
  
  //Schaltjahr Abfrage
  if ((($year % 4 == 0) && ($year % 100 != 0)) || ($year % 400 == 0))
        $leapyear = true;
  else
        $leapyear = false;
        
  //Tage im Monat
  switch ($actual_month)
  {
      case 1 :
      case 3 :
      case 5 :
      case 7 :
      case 8 :
      case 10 :
      case 12 :
      { $dayspermonth = 31; } break;
      case 2 :
      {
          if ($leapyear)
            $dayspermonth = 29;
          else
            $dayspermonth = 28;
      } break;
      default :
      { $dayspermonth = 30;}
  }


  //Zusammenstoepseln -> Datum
  $days = $dayspermonth - $actual_day;
  $months = 12 - $actual_month-1;
  $left_date = "$days Tage $months Monate";
  //Zusammenstoepseln -> Zeit
  $left_hours = strftime("%H", $left_timestamp);
  $left_hours--;
  $left_minutes =  strftime("%M", $left_timestamp);
  $left_time = "$left_hours Stunden $left_minutes Minuten";
  
  //Ausgabe
  echo "Heute: $now_datetime<br/>Jahreswechsel: $target_datetime<br/>verbleibende Zeit: $left_date | $left_time";
?>
</body>
</html>


so .. wow .. da merkt man wieder wie dumm das gregorianische Kalendersystem ist ... :bash:

ich würd alles auf UNIX Timestamps umstellen :D


atrox schrieb am 06.02.2003 um 15:02

was spricht dagegen gleich mit den timestamps zu rechnen? schaltjahre sollten dann automatisch stimmen.


vossi schrieb am 06.02.2003 um 15:23

ja dann zieh mal einen timestamp vom andrem ab ..
und wie gibst dann das ganze richtig aus mit monat tag stunden minuten?


atrox schrieb am 06.02.2003 um 15:34

das sind sekunden seit 1970 (in javascript sind es milisek seit 1970)

Code:
mktime -- Get UNIX timestamp for a date

int mktime ( int hour, int minute, int second, int month, int day, int year [, int is_dst])

Returns the Unix timestamp corresponding to the arguments given. This timestamp 
is a long integer containing the number of seconds between the Unix Epoch (January 1 1970) 
and the time specified.


atrox schrieb am 06.02.2003 um 16:03

Zitat von vossi
Zitat von Cobase
Mach mal auf SR einen Vergleich zw. einer WD SE 200GB und einer Atlas III 73GB. Bis auf serverspezifische Anwendungen 0wnt die 7200er IDE-Maxtor die 10k Atlas ganz böse.
die 'welt' läuft bereits mit unix timestamps :eek:


vossi schrieb am 06.02.2003 um 19:14

du brauchst mir nicht zu erklären was das is .. das weiss ich danke .. sonst würd ich die dinger nicht benutzen bzw. leichtfertig voneinander subtrahieren.

die welt läuft mit unix timestamps .. aber nicht meine uhr ;)




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026