"We are back" « oc.at

need timer script (php)

bBU.CyTrobIc 06.02.2003 - 12:38 1389 17
Posts

bBU.CyTrobIc

#include "billrulz.h"
Avatar
Registered: Oct 2000
Location: Hamburg
Posts: 1875
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

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
wohl eher ein javascript/dhtml problem

noledge

CWNE #540
Avatar
Registered: Apr 2001
Location: ::1
Posts: 6838
meinst nicht den 1.1.2004? :confused:

was solls runterzählen? tage? sekunden?

vossi

been there, done that
Avatar
Registered: Feb 2003
Location: Vienna
Posts: 1436
ja das is ganz einfach

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

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
ok.. vossi hat übernommen :)

vossi

been there, done that
Avatar
Registered: Feb 2003
Location: Vienna
Posts: 1436
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

CWNE #540
Avatar
Registered: Apr 2001
Location: ::1
Posts: 6838
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

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
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>
Bearbeitet von atrox am 06.02.2003, 13:47 (tippfehler + other)

vossi

been there, done that
Avatar
Registered: Feb 2003
Location: Vienna
Posts: 1436
ja das meta refresh hab ich ganz vergessn.

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

vossi

been there, done that
Avatar
Registered: Feb 2003
Location: Vienna
Posts: 1436
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
Bearbeitet von vossi am 06.02.2003, 14:56

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
was spricht dagegen gleich mit den timestamps zu rechnen? schaltjahre sollten dann automatisch stimmen.

vossi

been there, done that
Avatar
Registered: Feb 2003
Location: Vienna
Posts: 1436
ja dann zieh mal einen timestamp vom andrem ab ..
und wie gibst dann das ganze richtig aus mit monat tag stunden minuten?

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
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.
Bearbeitet von atrox am 06.02.2003, 15:35 (readablity)

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
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

been there, done that
Avatar
Registered: Feb 2003
Location: Vienna
Posts: 1436
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 ;)
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz