Avatar billede unsafe Nybegynder
23. september 2005 - 20:24 Der er 12 kommentarer og
1 løsning

Idag, igår eller dato ?

Halløj.

Når man skriver i gæstebøgerne på mit community står der en dato, eks 21-09-2005. Jeg har felterne date_dato (viser date) og date_tid (viser tid).

Nu ville det så være smart hvis en besked var fra idag stod der idag, hvis den var fra igår stod der igår og hvis der er ældre end igår skal datoen bare vises.

Jeg sad selv og legde lidt med det, men lykkedes ikke helt:

<?php

$date = "2005-09-21";

$date2 = date("Y-m-j");

if($date == $date2) { print "Idag";
} elseif($date == '".("$date2- 1")."') { print "I går";
} else { print "$date"; }

?>

Er der nogle rare sjæle der vil hjælpe :-)?
Avatar billede terrak Nybegynder
23. september 2005 - 21:34 #1
<?php

$date = "2005-09-23";
$date2 = date("Y-m-d");

if ($date == $date2) {
echo  "I dag";
} elseif (strtotime($date."+2 day") <= strtotime($date2)) {
echo $date;
} else {
echo "I går";
}


?>

Virker umiddelbart også mellem månedovergange. Jeg går ikke ud fra at scriptet skal håndtere fremtidige datoer. Hvis det sker, vil datoen skrives som "I går".
Avatar billede unsafe Nybegynder
23. september 2005 - 22:06 #2
Det virker :-) tak.
Avatar billede unsafe Nybegynder
24. september 2005 - 00:05 #3
Eller, der står idag, men igår kommer ikke med denne kode:

<?php

$date = $rs5["date_dato"];
$date2 = date("d-m-Y");

if ($date == $date2) {
$actual_date = "I dag";
} elseif (strtotime($date."+2 day") <= strtotime($date2)) {
$actual_date = $date;
} else {
$actual_date = "I går";
}

echo $actual_date;

?>
Avatar billede terrak Nybegynder
24. september 2005 - 00:36 #4
Den fik jeg ikke lige fat i. Er der noget der ikke virker?
Avatar billede unsafe Nybegynder
24. september 2005 - 00:42 #5
Ja, den viser kun hvis datoen er Idag.

Ikke hvis det var igår..

Fordi jeg ændret fra Y-m-d Til d-m-Y da det ser bedre ud :-)
Avatar billede terrak Nybegynder
25. september 2005 - 00:25 #6
Så skal du ikke ændre sammenligningsdatoen, men kun datoen der bliver skrevet, hvis det hverken var i går eller i dag.
Dvs.
$actual_date = $date;
bliver til
$actual_date = date("d-m-Y",strtotime($date));
Avatar billede unsafe Nybegynder
25. september 2005 - 02:38 #7
Hmm nej, så kommer den med eks : 26-02-2030.

Det vil bare ikke vise igår.
Avatar billede terrak Nybegynder
25. september 2005 - 10:16 #8
<?php

$date = "2005-09-24";
$date2 = date("Y-m-d");

if ($date == $date2) {
$actual_date = "I dag";
} elseif (strtotime($date."+2 day") <= strtotime($date2)) {
$actual_date = date("d-m-Y",strtotime($date));
} else {
$actual_date = "I går";
}

echo $actual_date;

?>

Det virker fint her. Mit gæt er at $rs5["date_dato"] ikke indeholder en dato i formatet yyyy-mm-dd
Avatar billede unsafe Nybegynder
25. september 2005 - 15:54 #9
Jamen jeg siger jo at jeg har ændret 2005-09-24 til 24-09-2005 og Y-m-d til d-m-Y
Avatar billede terrak Nybegynder
25. september 2005 - 16:04 #10
Er der nogen grund til du har ændret det? For det kræver at hele scriptet skal laves om.
Avatar billede unsafe Nybegynder
25. september 2005 - 17:22 #11
Ja, det ser bedre ud der står 25-09-2005 end 2005-09-25

:-)
Avatar billede terrak Nybegynder
26. september 2005 - 07:22 #12
Det kommer der også til at stå hvis du bruger mit forrige eksempel :) Det kræver bare at datoen i databasen står i formatet yyyy-mm-dd. Den vender det selv om.
Avatar billede unsafe Nybegynder
26. september 2005 - 16:05 #13
Nå for søren :-) Jamen så virker det jo fint,

Mange tak skal du have ;-)
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