login  Naam:   Wachtwoord: 
Registreer je!
 Forum

mktime()

Offline Warbringer - 09/04/2007 13:04
Avatar van WarbringerOnbekend Hallo allemaal,

Ik snap de tutorial over MKTIME niet helemaal.
Ik heb in mijn database een date("U") opgeslagen.
Bijvoorbeeld de uitkomst daarvan is:

01-01-2007 (1 januari 2007).

Deze is geldig tot 06-01-2007 (+ 5 maanden).
Hoe kan ik dit met mktime uitrekenen?

Dus dat hij automatisch weergeeft hoelang iemand nog heeft
op het moment dat ze bijvoorbeeld voor 6 maanden extra privelages krijgen. Hij moet dan kijken van:

in de database staat die datum als start, het is 5 maanden geldig dus op xxxxx datum loopt het af. Hoe moet ik dit precies doen? zou iemand svp een paar lijntjes tekst neer kunnen gooien zodat ik even kan kijken ;-)

5 antwoorden

Gesponsorde links
Offline JBke - 09/04/2007 13:32 (laatste wijziging 09/04/2007 13:47)
Avatar van JBke PHP gevorderde Heb zoiets soortgelijks gemaakt voor het berekenen van iemand zijn ouderdom adhv zijn geboortedatum. Is eigenlijk gewoon een functie schrijven die het verschil van datum vaststeld in Jaren, Maanden, Dagen en eventueel uren en minuten of seconden.

mktime() kan je onderverdelen als volgd:
  1. <?
  2. echo "Dag van het jaar is: ".date("z",time())."<br>";
  3.  
  4. //resultaat: Dag van het jaar is: 78
  5.  
  6. echo "Week van het jaar is: ".date("W",time())."<br>";
  7.  
  8. //resultaat: Week van het jaar is: 11
  9.  
  10. echo "Maand van het jaar is: ".date("n",time())."<br>";
  11.  
  12. //resultaat: Maand van het jaar is: 3
  13. ?>


het is ongeveer als volgd.
  1. <?
  2. $tijd1=mktime(0,0,0,2,3,2005); //3 Februari 2005
  3.  
  4. $tijd2=mktime(0,0,0,3,18,2005); //18 Maart 2005
  5.  
  6. $verschil=$tijd2-$tijd1;
  7.  
  8. echo 'Het tijdsverschil is ' . $verschil . 'seconden<br>';
  9.  
  10. //Het tijdsverschil is 3715200 seconden
  11. ?>

Dan kan je de seconden weer omrekenen indien gewenst.

met date is meer met volgende omzetting:
  1. <?
  2. $datum1=mktime(0,0,0,11,5,2005);
  3.  
  4. $datum2=mktime(0,0,0,3,18,2005);
  5.  
  6. $dag1=date("z",$datum1);
  7.  
  8. $dag2=date("z",$datum2);
  9.  
  10. echo $dag1-$dag2;
  11.  
  12. echo "<br>";
  13.  
  14. //resultaat: 232
  15. ?>


Ga hier eens een kijkje nemen, kort en bondig uitgelegd voor verschillende berekeningen tussen mktime en date.(Wel in het engels)
http://www.tran.../dates.htm

Ik moet nu even weg, zal straks eens zoeken naar die functie. Indien je tegen dan nog geen oplossing hebt.

Grtz.
Offline Warbringer - 09/04/2007 14:02 (laatste wijziging 09/04/2007 14:05)
Avatar van Warbringer Onbekend super! hartstikken bedankt ga het eens goed doornemen!
(raar dat al die 0'en ervoor moeten haha)
Offline Dark_Paul - 09/04/2007 14:19
Avatar van Dark_Paul PHP ver gevorderde Ja, die moeten ervoor, dit zijn ook parameters die gevraagd worden.
PHP.net: mktime()
Offline Warbringer - 09/04/2007 17:24
Avatar van Warbringer Onbekend Maar als ik nu dit wil doen:

$query = mysql_query("SELECT reg_date FROM geregistreerd");

hieruit haalt hij dus b.v. dat gebruiker a geregistreerd is op 9 maart 2007. Hij heeft toen een account gekregen die 6 maanden geldig is.

Het is nu vandaag 9 april. Hoeveel dagen heeft hij nu nog over?
Offline JBke - 09/04/2007 17:29 (laatste wijziging 09/04/2007 17:30)
Avatar van JBke PHP gevorderde dan zet je eerst 6 maanden om naar dagen, je berekend het verschil in aantal dagen van laatste vernieuwing (datum uit je database) en de datum nu, je hebt bvb 60 dagen geleden dat de laatste betaling is gebeurd. als je dan een betaling had gedaan laat ons zeggen voor 6 maanden = 180 dagen dan heb je nog 180 - 60 is 120 dagen over.

Dat is uiteindelijk een questie van redenatie he. Zorg er wel voor dat hij zowel Jaren als dagen berekend. Ik weil zeggen als je later je script uitbreid en je bvb een abbonement kan nemen voor 2 jaar is 24 maanden dat je niet in problemen komt.

Kleine opmerking: Als je met de registratiedatum gaat werken zal dit nooit blijven werken je zal een tweede datum in je database moeten toevoegen bvb datum_laatste_betaling en vanuit deze datum het aantal dagen berekenen dat je nog rest tot je weer dient te betalen.

Grtz.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.22s