login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Verschil tussen 2 strings...

Offline timo - 15/02/2006 12:44
Avatar van timoPHP ver gevorderde Ik wil dat als ik een datum uit een database haal ik die kan vergelijken met de datum die het nu is, en dat er dan als output de hoeveelheid dagen-maanden-jaren komt.... iemand enig idee?

10 antwoorden

Gesponsorde links
Offline Gerard - 15/02/2006 12:49
Avatar van Gerard Ouwe rakker Hoe is de datum in je database opgeslagen? (formaat)
Offline timo - 15/02/2006 12:49
Avatar van timo PHP ver gevorderde is een DATE veld
Offline Ontani - 15/02/2006 12:50
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
PHP.net: date

contactbablu at yahoo dot com Schreef:
Here is a function which calculate date difference between provided one and current time stamp.

  1. <?
  2. function date_format($tstamp)
  3. {
  4. $y=date('Y',$tstamp);
  5. $m=date('n',$tstamp);
  6. $d=date('d',$tstamp);
  7. $h=date('G',$tstamp);
  8. $i=date('i',$tstamp);
  9. $s=date('s',$tstamp);
  10. //c stand for current
  11. //
  12. //*************** change value between * A/C to your needs
  13. $cy=date('Y');
  14. $cm=date('n');
  15. $cd=date('d');
  16. $ch=date('G');
  17. $ci=date('i');
  18. $cs=date('s');
  19. //
  20. if(is_leep($cy))
  21. {
  22. $marray=array('1'=>31,'2'=>29,'3'=>31,
  23. '4'=>30,'5'=>31,'6'=>30,
  24. '7'=>31,'8'=>31,'9'=>30,
  25. '10'=>31,'11'=>30,'12'=>31);
  26. }
  27. else
  28. {
  29. $marray=array('1'=>31,'2'=>28,'3'=>31,
  30. '4'=>30,'5'=>31,'6'=>30,
  31. '7'=>31,'8'=>31,'9'=>30,
  32. '10'=>31,'11'=>30,'12'=>31);
  33. }
  34. //
  35. //for second
  36. if($cs >= $s)
  37. {
  38. $s=$cs-$s;
  39. }
  40. else
  41. {
  42. $ci--;
  43. $cs=$cs + 60;
  44. $s=$cs-$s;
  45. }
  46. //for minutes
  47. if($ci >= $i)
  48. {
  49. $i=$ci-$i;
  50. }
  51. else
  52. {
  53. $ch--;
  54. $ci=$ci + 60;
  55. $i=$ci-$i;
  56. }
  57. //for hour
  58. if($ch >= $h)
  59. {
  60. $h=$ch-$h;
  61. }
  62. else
  63. {
  64. $cd--;
  65. $ch=$ch + 60;
  66. $h=$ch-$h;
  67. }
  68. //days
  69. if($cd >= $d)
  70. {
  71. $d=$cd-$d;
  72. }
  73. else
  74. {
  75. $temp=$marray[$cm];
  76. $cm--;
  77. $cd=$cd + $temp;
  78. $d=$cd-$d;
  79. }
  80. //for month
  81. if($cm >= $m)
  82. {
  83. $m=($cm - $m);
  84. }
  85. else
  86. {
  87. $cy--;
  88. $cm=$cm + 12;
  89. $m=$cm-$m;
  90. }
  91. //for year
  92. $y=$cy-$y;
  93. //
  94. $date=$y." Year-".$m." Month-".$d." Days<br>".$h." Hours -".$i." Min-".$s." Second";
  95. return $date;
  96. }
  97.  
  98. //check whether leep year or not
  99. function is_leep($y)
  100. {
  101. if($y % 4 == 0 && $y % 100 != 0)
  102. {
  103. return 1;
  104. }
  105. if($y % 100 == 0 && $y % 400 == 0)
  106. {
  107. return 1;
  108. }
  109. return 0;
  110. }
  111.  
  112. echo date_format(123456);
  113. ?>
Offline timo - 15/02/2006 12:53
Avatar van timo PHP ver gevorderde waar moet ik het zo veranderen dat ik mijn datum uit db haal?
Offline Ontani - 15/02/2006 12:54
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
op't einde waar staat:

echo date_format(123456);

dat verander je in:

echo date_format($databaseDatum);
Offline timo - 15/02/2006 12:58
Avatar van timo PHP ver gevorderde werkt niet:S
Offline Ontani - 15/02/2006 13:02
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
hoe ziet er de output van die date uit?
doe eens: echo $databaseDatum;
Offline timo - 15/02/2006 13:41 (laatste wijziging 15/02/2006 13:55)
Avatar van timo PHP ver gevorderde 2006-03-21

EDIT: opgelost, hieronder m'n code:
  1. <?php
  2. $afloop = explode("-",$result['afloopdatum']);
  3. $jaar = $afloop[0];
  4. $maand = $afloop[1];
  5. $dag = $afloop[2];
  6. $year = $jaar - date("Y");
  7. $month = $maand - date("m");
  8. $day = $dag - date("d");
  9. $looptaf = $day."-".$month."-".$year;
  10. ?>
Offline webstab - 15/02/2006 14:03 (laatste wijziging 15/02/2006 14:04)
Avatar van webstab PHP ver gevorderde
  1. <?php
  2. // niet getest en weet ook niet of het goed werkt, maar misschien ben je er iets mee
  3. $datum = "2006-01-02";
  4. list($y, $mo, $d) = explode("-", $datum);
  5. $verschil = time()-mktime(0, 0, 0, $mo, $d, $y);
  6. echo date("d",$verschil)." dagen en ".date("m",$verschil)." maanden en ".(date("Y",$verschil)-1970)." jaren";
  7. ?>

Edit: Te laat
Offline Dieter_be - 15/02/2006 15:09
Avatar van Dieter_be Nieuw lid unix timestamps all the way... de enige logische manier om met datums om te gaan, en ge kunt er alle kanten mee uit
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.212s