krokos.net.pl
Masz wyłączoną obsługę javascript, niektóre funkcje na stronie mogą działać nieprawidłowo
29.03.2024
Marek, Wiktoryna, Zenon, Wiktoryn, Helmut, Eustachiusz, Ostap
dziś jest : 89 dzień roku wschód słońca o : 5:28 , zachód o : 18:11 koniec roku za : 276 dni
Programowanie PHP - Różnica Czasu Pomiędzy Wyznaczonymi Datami
Klasa pozwala na obliczenie różnicy pomiędzy podanymi datami, zarówno w przeszłości jak i przyszłosci. W jednym przypadku będzie to odliczanie wstecz, a w drugim do określonej daty. Czas może być w zależności od konfiguracji podawany w formie : lat, miesięcy, tygodni, dni, godzin, minut i sekund.
CODE : php
  1. /**
  2.  * the difference between two dates
  3.  * copyright : (c) 2012 Andrzej Krokos
  4.  * version PHP : 5
  5.  * author : shreker983@gmail.com
  6.  * licence : GPL
  7.  *
  8.  * file: diffclass.php
  9. */
  10.  
  11. class dif_dates
  12. {
  13. // valid dates
  14. function checkdateformat($date)
  15. {
  16. if (preg_match("/^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2}) ([0-9]{1,2}):
  17. ([0-9]{1,2}):([0-9]{1,2})$/", $date))
  18. {
  19. return true;
  20. }
  21. else
  22. {
  23. return false;
  24. }
  25. }
  26. // manipulation & show dates
  27. function calcdiff($datefrom, $dateto, $spaces, $showopc)
  28. {
  29. if ($sesur = $this->checkdateformat($datefrom) != true)
  30. {
  31. echo 'bad date from !';
  32. }
  33. else if ($sesur = $this->checkdateformat($dateto) != true)
  34. {
  35. echo 'bad date to !';
  36. }
  37. else
  38. {
  39. $names = array(' y', ' m', ' w', ' d', ' h', ' m', ' s');
  40. $show = '';
  41. $dateto = intval(strtotime(date($dateto)));
  42. $datefrom = intval(strtotime(date($datefrom)));
  43. if ($dateto < $datefrom)
  44. {
  45. $dtime = $datefrom - $dateto;
  46. }
  47. else
  48. {
  49. $dtime = $dateto - $datefrom;
  50. }
  51. $dyear = floor($dtime / 31556926);
  52. if ($dyear > 0)
  53. {
  54. $dtime = $dtime - ($dyear * 31556926);
  55. if (preg_match('/y/i', $showopc)) // show years
  56. {
  57. $show .= '<b>'.$dyear.'</b>'.$names[0];
  58. }
  59. }
  60. unset($dyear);
  61. $dmonth = floor($dtime / 2629743.83);
  62. if ($dmonth > 0)
  63. {
  64. $dtime = $dtime - ($dmonth * 2629743.83);
  65. if (preg_match('/m/i', $showopc)) // show months
  66. {
  67. $show .= empty($show) ? '' : $spaces;
  68. $show .= '<b>'.$dmonth.'</b>'.$names[1];
  69. }
  70. }
  71. unset($dmonth);
  72. $dweek = floor($dtime / 604800);
  73. if ($dweek > 0)
  74. {
  75. $dtime = $dtime - ($dweek * 604800);
  76. if (preg_match('/w/i', $showopc)) // show weeks
  77. {
  78. $show .= empty($show) ? '' : $spaces;
  79. $show .= '<b>'.$dweek.'</b>'.$names[2];
  80. }
  81. }
  82. unset($dweek);
  83. $ddays = floor($dtime / 86400);
  84. if ($ddays > 0)
  85. {
  86. $dtime = $dtime - ($ddays * 86400);
  87. if (preg_match('/d/i', $showopc)) // show days
  88. {
  89. $show .= empty($show) ? '' : $spaces;
  90. $show .= '<b>'.$ddays.'</b>'.$names[3];
  91. }
  92. }
  93. unset($ddays);
  94. $dhours = floor($dtime / 3600);
  95. if ($dhours > 0)
  96. {
  97. $dtime = $dtime - ($dhours * 3600);
  98. if (preg_match('/h/i', $showopc)) // show hours
  99. {
  100. $show .= empty($show) ? '' : $spaces;
  101. $show .= '<b>'.$dhours.'</b>'.$names[4];
  102. }
  103. }
  104. unset($dhours);
  105. $dminut = floor($dtime / 60);
  106. if ($dminut > 0)
  107. {
  108. $dtime = $dtime - ($dminut * 60);
  109. if (preg_match('/i/i', $showopc)) // show minuts
  110. {
  111. $show .= empty($show) ? '' : $spaces;
  112. $show .= '<b>'.$dminut.'</b>'.$names[5];
  113. }
  114. }
  115. unset($dminut);
  116. $dsec = floor($dtime);
  117. if ($dtime > 0)
  118. {
  119. if (preg_match('/s/i', $showopc)) // show seconds
  120. {
  121. $show .= empty($show) ? '' : $spaces;
  122. $show .= '<b>'.$dsec.'</b>'.$names[6];
  123. }
  124. }
  125. unset($dtime);
  126. if ($dateto < $datefrom)
  127. {
  128. $show = "- {$show}";
  129. }
  130. return $show;
  131. }
  132. }
  133. }
  134.  
  135. $t = new dif_dates();
  136. echo $t->calcdiff('2010-10-23 12:00:00', date('Y-m-d G:i:s'), ' ', 'ymwdhis');
Dzięki zastosowaniu Ajax'a możemy na bieżąco odświeżać div z załadowanym plikiem klasy, co pozwoli nam na bieżąco wyswietlać różnicę czasu.
CODE : html
  1. <!-- file: diiff.html -->
  2.  
  3. <script src="http://code.jquery.com/jquery-latest.js"></script>
  4.  
  5. <script type="text/javascript">
  6. $(document).ready(function()
  7. {
  8. $("#responsecontainer").load("diffclass.php");
  9. var refreshId = setInterval(function() {
  10. $("#responsecontainer").load('diffclass.php?randval=' + Math.random());
  11. }, 1000);
  12. $.ajaxSetup({ cache: false });
  13. });
  14.  
  15. <div id="responsecontainer"></div>
pobierz plik ( rozmiar : 1.56 kB )
ocena : 4.6(oddano : 7 głosów)
online : 2 użytkowników, dziś odwiedziło : 52 osoby
Zgodnie z nowelizacją ustawy o Prawie Telekomunikacyjnym informujemy, że strona krokos.net.pl w swoim działaniu korzysta z zapisywanych informacji w postaci ciasteczek (ang. cookies).
Szlachetna Paczka
powered by scms © 2004 - 2024 design by sid