Avatar billede shjorth Nybegynder
27. november 2007 - 22:20 Der er 5 kommentarer og
1 løsning

php advar før dato

Hejsa.

Jeg har i min database nogle datoer i flg format:
2007-27-11

Jeg kunne godt tænke mig at lave 2 funktioner.

Den ene skal være en funktion, som advarer f.eks 5 dage før datoen om at der er "under 5 dage til datoen"

Den anden skal være en funktion, så jeg kan vise at datoen er "forældet".

Er der nogen der ved hvordan det kan gøres?

På forhånd mange tak.
Avatar billede henninghabor Nybegynder
28. november 2007 - 00:49 #1
Du kan bruge MySQL's DateDiff:

SELECT DATEDIFF(felt, now()) AS antalDage

I PHP kan du så lave følgende:

if($antalDage > 0)
{
  if($antalDage <= 5)
  {
    echo "Under 5 dage til datoen";
  }
}
elseif($antalDage < 0)
{
  echo "Forældet";
}
else
{
  echo "Søreme om det ikke er i dag";
}
Avatar billede shjorth Nybegynder
28. november 2007 - 15:02 #2
Hej.

Jeg har prøvet flg:

$query = mysql_query("SELECT DATEDIFF(date, now()) AS antalDage FROM aftale")or die(mysql_error());


while($row = mysql_fetch_array($query)) {

if($antalDage > 0)
{
  if($antalDage <= 5)
  {
    echo "Under 5 dage til datoen";
  }
}
elseif($antalDage < 0)
{
  echo "Forældet";
}
else
{
  echo "Søreme om det ikke er i dag";
}

}

Men den siger "Sørme om det ikke er idag" lige gyldig hvilken dato det er.
"antalDage" er det et felt eller lign jeg skal oprette?

Jeg er lidt på bar bund :S
Avatar billede shjorth Nybegynder
28. november 2007 - 15:04 #3
Men ellers er det godt.

Jeg skal bruge "under 5 dage" - "det er idag" - "forældet" - "over 5 dage" funktionerne. Det e rpræcis det jeg leder efter :)
Avatar billede Slettet bruger
28. november 2007 - 15:09 #4
$query = mysql_query("SELECT DATEDIFF(date, now()) AS antalDage FROM aftale")or die(mysql_error());


while($row = mysql_fetch_array($query)) {
    $antalDage = $row['antalDage'];
    if($antalDage > 0) {
        if($antalDage <= 5) {
            echo "Under 5 dage til datoen";
        }
    } elseif($antalDage < 0) {
        echo "Forældet";
    } else {
        echo "Søreme om det ikke er i dag";
    }
}
Avatar billede Slettet bruger
28. november 2007 - 15:12 #5
while($row = mysql_fetch_array($query)) {
    $antalDage = $row['antalDage'];
    if($antalDage > 0) {
        if($antalDage <= 5) {
            echo "Under 5 dage eller nøjagtig 5 dage til datoen";
        } else {
            echo "Over 5 dage til datoen";
        }
    } elseif($antalDage < 0) {
        echo "Forældet";
    } else {
        echo "Søreme om det ikke er i dag";
    }
}
Avatar billede shjorth Nybegynder
28. november 2007 - 16:26 #6
Ja, det virker.

Men mit problem lige nu er at jeg trækker i forvejen info om diverse aftaler ud i en "while".

while($row.....

print("<tr><td>".$row['aftale'].".....

Så skal jeg så lave en funktion der kan fortælle om der er over/under 5 dage eller om den er forældet eller lign.

Det er ikke så lige til :S

Men indtil videre mange tak for hjælpen :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester