Avatar billede dank Nybegynder
03. marts 2003 - 23:02 Der er 8 kommentarer og
3 løsninger

Finde records ældre end 7 dage

Hey.. i min database bliver der indsat nogle dato'er, f.eks.:

$date=20030303225052

Hvordan i alververden kan man tjekke om dette er mere en 7 dage gammelt? Nogen der kan hjælpe mig med en stump kode? :o)
Avatar billede swaxi Nybegynder
03. marts 2003 - 23:20 #1
<?php
    $date="2003-03-03 22:50:52";
    if (strtotime($date)<strtotime("-1 week"))
        echo "den er mere end en uge gammel";
?>
Avatar billede dank Nybegynder
03. marts 2003 - 23:27 #2
ok, men hvad hvis der ikke er : og - i tiden, f.eks. rent:

20030303225052

Som det desværre ser ud i min database :o]
Avatar billede ahv Nybegynder
03. marts 2003 - 23:50 #3
<?php

$date = 20030303225052;

$dage = time() - (60*60*24*7);
$dato7 = date("YmdHis", $dage);

if($dato7 > $date)
{
echo "Datoen er mere end 7 dage gammel";
}

?>
Avatar billede swaxi Nybegynder
04. marts 2003 - 00:03 #4
har du smidt en string i din database ? har du ikke hørt om DATETIME ?
anyway ... så må du jo splitte strengen op ... a la

<?php
    $date = "20030303225052";
    $year = substr($date,0,4);
    $month = substr($date,4,2);
    $day = substr($date,6,2);
    $hour = substr($date,8,2);
    $min = substr($date,10,2);
    $sec = substr($date,12,2);
    $datetime = mktime ($hour, $min, $sec, $month, $day, $year);
    if ($datetime<strtotime("-1 week"))
        echo "den er mere end en uge gammel";
?>
Avatar billede michael_stim Ekspert
04. marts 2003 - 00:43 #5
Har du brugt timestamp?
Avatar billede michael_stim Ekspert
04. marts 2003 - 00:44 #6
Hvis du har det så brug datetime istedet og gör som swaxi siger.
Avatar billede hobz Nybegynder
04. marts 2003 - 11:15 #7
Der er en meget lettere metode, som mysql kan bruge direkte:
SELECT * FROM table
WHERE TO_DAYS(NOW()) - TO_DAYS(dit_time_stamp) <= 7
Avatar billede dank Nybegynder
05. marts 2003 - 00:09 #8
hobz > Det ser ud til at være en god metode. dog forstår jeg ikke rigtigt.. hvad skal der stå i  'dit_time_stamt'? Er det når scriptet afvikles, eller hurledes?
Avatar billede dank Nybegynder
05. marts 2003 - 02:17 #9
SELECT * FROM table WHERE TO_DAYS(NOW()) - TO_DAYS(tabel) <= 7

Virkeligt en FED! måde hobz tryllede frem :o)
Avatar billede hobz Nybegynder
05. marts 2003 - 11:15 #10
Du fandt ud af det? Super!
Avatar billede hobz Nybegynder
05. marts 2003 - 11:18 #11
En anden god ting, hvis man skal displaye en dato fra mysql i php's date("Ymd") format, er at extract dato'en som unix_timestamp:

eks.

SELECT *, UNIX_TIMESTAMP(dato) AS dato
FROM table
WHERE TO_DAYS(NOW()) - TO_DAYS(dit_time_stamp) <= 7

så kan man i php bruge date() til at få dato/tid/år i lige så mange kombinationer man vil.
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