Gå til innhold

Skript som varsler en hendelse en uke i forveien.


Anbefalte innlegg

Skrevet (endret)

Hei!

 

For å gjøre en ting klart, jeg kan ikke fælt mye PHP. Dette skriptet er redigert ut i fra et annet skript jeg fant med ca. lik funksjonalitet som jeg ønsker her. (bursdagsskript..)

 

<?php $date = date ("dm");
$terminliste = Array
(
   "Testdings" => "2410",
);

if(in_array($date, $terminliste))
{
  foreach($terminliste as $name => $birthdate)
  {
      if($birthdate == $date)
      {
          echo " $name ";
      }
  }
}
else
{
  echo " Ingenting skjer i dag. ";
}
?>

 

Først, fikse noen av aliasene slik at de får mer vettuge navn.. Kan jeg bare endre de uten at det skjer noe?

 

Jeg vil at skriptet skal varsle hendelsen "Testdings" en uke før datoen hendelsen inntreffer. Hvordan?

Endret av _Ferrari_
Videoannonse
Annonse
Skrevet (endret)

<?php 
$idag = time();
$fremtid = date ( 'U', strtotime( '+1 week' ) );

// $terminliste kan fint endres.
$terminliste = array(
"Testdings" => "2. November 2007",
);

// Men da må du endre $terminliste til det du endra det til over
// $birthdate kan også endres.
foreach($terminliste as $name => $birthdate)
{
// Og da endrer du naturligvis $birthdate her også
$birthdate = date( 'U', strtotime( $birthdate ) );
if( $birthdate <= $fremtid AND $birthdate >= $idag )
{
	echo "{$name} <br />";
}
}

?>

Den tror jeg nok skal funke.

 

EDIT: Kode oppdatert.

EDIT2: Ny kode

Endret av M4rTiN
Skrevet

Nei.. det skriver ut kun datoene..

 

Jeg skal ha en boks på siden min, som skal skrive ut dette(boksen skal hete Kommende hendelser, ikke vesentlig..)

"testdings"

"en annen testdings"

 

Datoen legger jeg kanskje inn som i navnet på testdingsene.. Slik at den skriver ut "testdings 27. okt"

 

Hendelsene skal dukke opp i boksen en uke før de inntreffer.

Skrevet (endret)

Selvfølgelig. Fant feilen.

Hvor naturlig er det ikke at 2010 er mindre enn 3011? Gjorde om hele koden til å bruke unix timestamp istede for "lesbare" datoer.

Datoen du da skriver i $terminliste må følge GNUs Dato input standard

 

EDIT: Til informasjon, så er den gamle koden oppdatert.

Endret av M4rTiN
Skrevet

Hvordan har du tenkt å sikre at dette scriptet blir kjørt hver dag slik at du får varslingen i tide? eller har jeg misforstått helt hva du vil oppnå her?

Skrevet (endret)

Jo, koden skal inn i boksen ja. Og hendelsen må bli skrevet ut en uke i forveien, og hver dag frem til hendelsen finner sted. Men den skriver ikke ut noen ting nå heller...

 

EDIT: Tror klokka på serveren går feil.. Fikse det da kanskje.

EDIT2: Nei, det fiksa ikke problemet..

Endret av _Ferrari_
Skrevet (endret)

Skulle da tro det ja...

<?php
$idag = time();
$fremtid = date ( 'U', strtotime( '+1 week' ) );

// $terminliste kan fint endres.
$terminliste = array(
"Testdings" => "2. November 2007",
);

// Men da må du endre $terminliste til det du endra det til over
// $birthdate kan også endres.
foreach($terminliste as $name => $dato)
{
// Og da endrer du naturligvis $birthdate her også
$birthdate = date( 'U', strtotime( $dato ) );
if( $dato <= $fremtid AND $dato >= $idag )
{
	echo "{$name} <br />";
}
}

?>

 

Det skulle da vise noe i dag?

Endret av _Ferrari_

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...