Avatar billede fruut Nybegynder
01. januar 2005 - 22:09 Der er 5 kommentarer og
1 løsning

tid imellem to datoer

Hej :)

Der var for et stykke tid siden et spørgsmål hvor en spurgte hvordan man trak 20 minutter fra et timestamp, men kan desværre ikke finde det vha. søgefunktionen her på eksperten.dk.

Mit spørgsmål er noget lign. det.
Til sådan noget "NY" ting man kan skrive ved nyeste billedserie, nyeste forumindlæg osv., skal jeg så tjekke forskellem mellem to tidspunkter (datoer) og se om den er mindre end f.eks. 14 dage eller hvad det nu skal være.

Jeg lavede en løsning som jeg ikke lige tænkte igennem - den har nemlig ingen forståelse af årsskifte.

          if (($nuvaerendemaaned == $maaned) AND ($nuvaerendedag >= $dag)) {
              $tid = $nuvaerendedag - $dag;
          } else {
              $tid = $nuvaerendedag - $dag + 30;
          }
          if ($tid < 15) {
              return true;
          }
          return false;

men det er også helt roddet og jeg ved man kan lave det på en nemmere måde som en så kvikt skrev ved det spørgsmål om at trække 20 minutter fra et timestamp, men det kan jeg desværre ikke finde, så håber den samme person - eller en anden der kan svaret :) - hjælpe mig.

På forhånd tak!

PS: formatet er "ååå-mm-dd hh:mm:ss" (inden jeg splittede det for at bruge det i mit sølle forsøg på en løsning :))
Avatar billede coderdk Praktikant
01. januar 2005 - 22:23 #1
http://www.eksperten.dk/spm/575864

Dit problem:

if ( strtotime( "-14 DAYS" ) > strtotime( "2004-12-22 12:34:12" ) )
{
  echo "Datoen er mere end 14 dage gammel";
}
else
{
  echo "Datoen er mindre end 14 dage gammel";
}
Avatar billede knudx Nybegynder
01. januar 2005 - 22:52 #2
Hvad med at lave en streng med en dato - for 14 dage siden i dit eksempel - og så sammenligne datoerne med strcmp:

$nytid = time ("Y-m-d h:i:s");
...
if (strcmp($nytid,$tid)<0) {
  //nu er $nytid *før* $tid...
  //$tid skal stadig være "åååå-mm-dd tt:mm:ss"
}
Avatar billede knudx Nybegynder
01. januar 2005 - 22:56 #3
UUUPS, det var en fehler, nu er $nytid jo *lige nu*, der skulle stå

$nytid = time ("Y-m-d h:i:s", time() - (14*24*60*60));

---det var ligesom det der var tricket!! time() er antallet af sekunder "nu", og 14*24*60*60 er så mange sekunder der går på 14 dage!
Avatar billede knudx Nybegynder
01. januar 2005 - 23:05 #4
--->coderdk's løsning er smartere (øv!)
Avatar billede fruut Nybegynder
01. januar 2005 - 23:36 #5
tak for hjælpen coderdk :) sikker på du ik vil ha point?
Avatar billede coderdk Praktikant
01. januar 2005 - 23:39 #6
Tjah, giv hvad du lyster, og tag resten selv så :)
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