Hallo iedereen, ik wil de aantal dagen en weken tussen een bepaalde datum(in het verleden) uit een database en de datum van vandaag berekenen, maar weet niet hoe. Ik heb nu dit staan:
[code]
<?
$aantaldagen=$zoekresultaten["factuurdatum"]-date("Y-m-d");
$aantalweken=$aantaldagen/7;
$aantaldagen=round($aantaldagen);
?>
kan je dan niet met strtotime() werken ?


<?php

$ooit = strtotime('12 May 1995');
$nu   = strtotime('now');

$verschil = $nu - $ooit;

$aantal_dagen = ceil($verschil/86400);
$aantal_weken = ceil($aantal_dagen/7);

//etc....

?>


==EDIT==

heeft wel het nadeel dat het maar terug kan tot 1 jan 1970
SELECT DAY(TIMEDIFF(factuurdatum, NOW())) as dagen FROM ...
In PostgreSQL:

SELECT '2008-12-01'::date - '2008-11-23'::date;

Antwoord: 8 (8 dagen that is, waarbij 8 een integer is)

Of:

SELECT '2008-12-01'::timestamp - '2008-11-23':: timestamp;

Antwoord: 8 days (dus 8 dagen, waarbij 8 days een interval is)

De 2e oplossing is nog de mooiste, hiermee kun je tot op 6 cijfers achter de komma (van de secondes) berekenen wat het tijdsverschil is tussen 2 datums/tijden.
Ik heb nu dit gedaan, maar ben helaas niet bekend met strtotime. Hoe kan ik de datum die in de formaat Y-m-d bv 2008-11-02 weer omzetten in de formaat die strtotime ik neem aan seconden geeft?

<? 
$ooit=strtotime('$zoekresultaten["factuurdatum"]');
$nu=strtotime('now');
$verschil=$nu - $ooit;
$aantaldagen=ceil($verschil/86400);
$aantalweken=ceil($aantaldagen/7);
?>
Je hebt de slechtste manier gekozen. Laat je database het uitrekenen, die is veel beter in datums en tijden dan PHP.
Ik heb een aantal pogingen gewaagd en heb nu dit met hetzelfde resultaat

<?
$sec=$zoekresultaten["fac_id"];
$SQL="SELECT DAY(TIMEDIFF(factuurdatum, NOW())) as dagen FROM facturen WHERE fac_id=".$sec;
$zoek=$zoek_query=mysql_query(($SQL),$eaccesDB);
$zoek=mysql_fetch_array($zoek_query);
$ooit=zoek["factuurdatum"];
$nu=strtotime('now');

$verschil=$nu - $ooit;
  $aantaldagen=ceil($verschil/86400);
  $aantalweken=ceil($aantaldagen/7);
?>

dus als iemand weet hoe om een datum van Y-m-d naar hetzelfde formaat als stroftime om te zetten dan hoor ik het graag.
Weet iemand hoe om een datum van Y-m-d naar hetzelfde formaat als stroftime(ik denk dat zijn linux seconden) om te zetten dan hoor ik het graag.
nou, strtotime() zelf?

Maar nogmaals, ook in bovenstaande code doe je niet alles met de database.
Ik zie dat $sec['zoekresultaten'] er is.... dat komt ook uit de database?
Waarom iets uit de database halen, om het daarna weer te vergelijken met iets in de database?
Dat kan dus in 1 query!

En alsnog ga je het verschil in dagen met PHP uitrekenen. Maar laat dat SQL gewoon doen. Veel sneller/makkelijker.

Reageren