Avatar billede jonasjersborg Nybegynder
01. juni 2007 - 14:19 Der er 13 kommentarer og
1 løsning

er dato inden for interval

hej eksperter.
jeg har en database med en blog hvori den udskriver datoen for oprettelse af indlæg. fx 'Thursday, 31. May 2007 22:03'.
jeg vil gerne have en funktion så den skriver 'NEW' hvis indlægget er skrevet inden for 24 timer. hvordan gør man det? jeg kan nemlig ikke skrive :

<?php if (date("l, j. F Y G:i") - $blog['date']) < '24' echo 'New' ?>
Avatar billede jakobdo Ekspert
01. juni 2007 - 15:09 #1
Hvilket dato format gemmer du TID i i din mysql-tabel?
Træk tiden uden som UNIX_TIMESTAMP();
og tjek om den er under TIME() - (24 * 60 * 60);
Avatar billede hmm10 Nybegynder
01. juni 2007 - 15:34 #2
Jeg ville ligge tiden som UNIX_TIMESTAP() i databasen.

Måske kan dette bruges (rodet? - JA!):

$time = split(",", str_replace(".", "", "Thursday, 31. May 2007 22:03"));
if(strtotime($time[1])+(60*60*24) >= time()) print inden_for_dogn;
Avatar billede hmm10 Nybegynder
01. juni 2007 - 15:44 #3
.. Og efter test ;)

$time = split(",", str_replace(".", "", $blog["date"]));
if(strtotime($time[1]) <= time() && time() <= (strtotime($time[1])+(60*60*24)))
  print inden_for_dogn;
Avatar billede jonasjersborg Nybegynder
01. juni 2007 - 21:54 #4
hmm10 må gerne lægge svar tak
Avatar billede hmm10 Nybegynder
01. juni 2007 - 22:12 #5
Her er et svar, hvis det kan bruges.
Avatar billede jonasjersborg Nybegynder
05. juni 2007 - 13:49 #6
hvad gør jeg hvis datoen skrives som '04-Jun-2007 12:08' ?
Avatar billede jakobdo Ekspert
05. juni 2007 - 13:54 #7
Står det sådan i databasen?
Eller er det når det skrives ud?
Hvilket format / datatype bruger du i databasen?
Avatar billede jonasjersborg Nybegynder
06. juni 2007 - 12:20 #8
ja det står sådan i databasen. det er 'varchar(255)'.
Avatar billede jakobdo Ekspert
06. juni 2007 - 13:08 #9
Det er altså også skidt.
Du skal overveje: datetime som datatype.
Den er sjovt nok lavet til formålet! :o)
Avatar billede jonasjersborg Nybegynder
06. juni 2007 - 13:23 #10
så må jeg spørge.
jeg ændre feltet til datetime.

hvad skal jeg skrive i input boksen i min form så den automatisk skriver nuværende dato og tid. mest lignende '04-Jun-2007 12:08'. det er okay hvis det ser anderledes ud. og hvordan laver jeg så den skriver NEW hvis den er max 12 timer gammel?
Avatar billede jakobdo Ekspert
06. juni 2007 - 13:30 #11
du bør ændre koden som gemmer i databasen, og bruge: NOW()
Avatar billede jonasjersborg Nybegynder
06. juni 2007 - 13:31 #12
okay. hvordan laver jeg så den funktion med NEW?
Avatar billede jakobdo Ekspert
06. juni 2007 - 14:30 #13
Må jeg se din query der indsætter data i din tabel?
Avatar billede jonasjersborg Nybegynder
25. juni 2007 - 11:32 #14
nu bruger jeg denne dejlige kode i lavede for mig:

$time = split(",", str_replace(".", "", $blog["date"]));
if(strtotime($time[1]) <= time() && time() <= (strtotime($time[1])+(60*60*24)))
  print inden_for_dogn;

men hvad gør jeg hvis det kun skal være inden for 12 timer? har prøvet at rette 60*60*24 til 60*60*12 og så ændret et indlæg i databasen til at være lavet for 13 timer siden . men det vises stadig som nyt?
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