Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> roznice miedzy datami okreslic w procentach
wassago
post
Post #1





Grupa: Przyjaciele php.pl
Postów: 701
Pomógł: 0
Dołączył: 26.06.2002
Skąd: Londyn

Ostrzeżenie: (0%)
-----


mam taki maly problem, wlasciwie to mam jakies zacmienie polmroczne bo nawet nie wiem jak do tego sie zabrac. Mamy sobie dwie daty w "Ymd" np. 20040610 i 20040621. teraz potrzebuje roznice, czyli 11 dni przerobic aby skrypt wskazywal mi 100(%), kazda inna data odpowiednia ilosc procent np dzien 1 to bedzie ok 8.5(%). Dodam, ze daty moga sie zmieniac, wazne aby pelna roznica miedzy datami to bylo 100(%).

jakies pomysly?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
DeyV
post
Post #2





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




  1. <?php
  2. $sData1 = &#092;"20041204\";
  3. $sData2 = &#092;"20041208\";
  4.  
  5. $iData1 = prepareDate( $sData1 );
  6. $iData2 = prepareDate( $sData2 );
  7.  
  8. $iRoznica = abs( $iData1 - $iData2 );
  9. $iIloscDni = iloscDni( $iRoznica );
  10.  
  11.  
  12. echo ' ' . date (&#092;"d-m-Y\", prepareDate( $sData1 ) );
  13. echo ' ' . date (&#092;"d-m-Y\", prepareDate( $sData2 ) );
  14.  
  15.  
  16. echo ' ilosc dni: '. $iIloscDni;
  17.  
  18.  
  19. /*** jeden dzień to .. procent ****/
  20.  
  21. $fIleProcent = 1/$iIloscDni *100;
  22.  
  23. echo '<br /> jeden dzień to: ' .$fIleProcent . '% <br />';
  24.  
  25.  
  26. /*** x dni to .. procent ****/
  27. $iIleDni = 5;
  28. echo $iIleDni .' dni to: ' .$fIleProcent * $iIleDni. '% ';
  29.  
  30.  
  31.  
  32.  
  33.  
  34. /**
  35.  * @param string date YYYYMMDD
  36.  * @return int unixtime
  37.  */
  38. function prepareDate( $sDate )
  39. {
  40. $sDate = trim( $sDate );
  41.  
  42. $iYear = (int) substr( $sDate , 0, 4 ); 
  43. $iMounth = (int) substr( $sDate , 4, 2 ); 
  44. $iDay = (int) substr( $sDate , 6, 2 ); 
  45.  
  46. return mktime ( 0, 0, 0, $iMounth, $iDay, $iYear );  
  47. }
  48.  
  49. /**
  50.  * oblica, ile to dni
  51.  * @param int Ilośc sekund 
  52.  * @return int Ilośc dni
  53.  */
  54. function iloscDni( $iIloscSek )
  55. {
  56. if( $iIloscSek <=)
  57. {
  58. return 0;
  59. }
  60.  
  61. $iIloscDni = (int) $iIloscSek / ( 24*60*60);
  62.  
  63.  
  64. return $iIloscDni++; //niepełna doba jest traktowana jako cały dzien
  65. }
  66. ?>



ps. czas na powtórkę z 4 klasy podstawówki (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 21:51