Gå til innhold

Finne differanse mellom to datoer?


Anbefalte innlegg

Skrevet

Hei, som tittelen sier trenger jeg å vite hvordan man gjør dette.

 

Hvis jeg da har en databasetabell som heter "aksjekurs", en kollonne heter kurs, og den andre heter dato. Hver gang det kommer inn ny kurs, oppdateres datoen automatisk i tabellen. Denne datoen skal kunne brukes til å finne differansen mellom dagens dato i PHP og den datoen som kanskje kan ha ligget i databasen i flere dager.

 

Så spørsmålet blir da: Hvordan lager jeg denne tabellen (ihvertfall dato kollonnen) og hvordan kan jeg bruke datoen til å ta differansen?

 

På forhånd, takk! :)

Videoannonse
Annonse
Skrevet

Ville brukt timestamps. Bare å lage et timestamp når du legger inn, og et når du skal sjekke mot. Så er det bare å regne ut hva du vil ha basert på den :)

Skrevet

Hehe, har prøvd det da, men hvordan blir da SQL spørringen for å lage timestamp? Og trekker jeg fra sånn i php?

 

date("Y-m-d") - $stamp

Gjest Slettet+6132
Skrevet

Det enkleste er vel å bruke date("U") som timestamp, da du bare trekker tidene fra hverandre og kan derfra enkelt regne ut hvor mange minutter/timer/dager som er i forskjell.

Skrevet

Jeg glemte å si at differansen skal være i dager, sorry! Men er det ikke en slags timestamp i MySQL da som jeg kan bruker også hente ut denne datoen og ta differansen med en datofunksjon i PHP?

Skrevet

timestamp i mySQL er UNIX_TIMESTAMP()

 

denne kan du bruke sammen med DATETIME kolonnen i mySQL

 

SELECT noe FROM tabell where UNIX_TIMESTAMP('2006-04-19') < UNIX_TIMESTAMP('upcomming_events');

 

dette burde fungere utmerket. om du vil trekke fra et vist antall dager kan det bli slik:

 

SELECT noe FROM tabell where UNIX_TIMESTAMP('2006-04-19') > UNIX_TIMESTAMP('news_written_time')-(60*60*24*10);
--Dette vil hente ut alle "nyheter" som er nyere enn 10 dager

Skrevet

Takk for svar folkens! Men går det ann å finne ut hvor mange dager det har gått siden f.eks. 1.januar, år 2005 til i dag? I så fall hvordan?

Gjest Slettet+6132
Skrevet (endret)
Takk for svar folkens! Men går det ann å finne ut hvor mange dager det har gått siden f.eks. 1.januar, år 2005 til i dag? I så fall hvordan?

5952519[/snapback]

 

<?php
$start = mktime(0, 0, 0, 1, 1, 2005); // 01.01.05
$end = date("U"); // Now

$diff = $end - $start;

$diffdays = $diff / 86400; // 86400 = 1 day
$diffdays = round($diffdays, 1);

echo "Start: " . date("d.m.y", $start) . "\n";
echo "End: " . date("d.m.y", $end) . "\n";
echo "Difference: $diffdays days";
?>

 

EDIT: Returnerer noe som dette:

Start: 01.01.05
End: 20.04.06
Difference: 474.2 days

Endret av Slettet+6132
Skrevet
Det enkleste er vel å bruke date("U") som timestamp, da du bare trekker tidene fra hverandre og kan derfra enkelt regne ut hvor mange minutter/timer/dager som er i forskjell.

5951009[/snapback]

Kansje litt offtopic...

 

Hvorfor bruker du date("U") ikke time()?

Gjest Slettet+6132
Skrevet
Kansje litt offtopic...

 

Hvorfor bruker du date("U") ikke time()?

5953248[/snapback]

 

Godt spørsmål ... *dikte opp dumt svar*; For at du skal få noe å spørre om!

 

:D

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å
×
×
  • Opprett ny...