PHP Różnica czasu między dwiema datami, słownie (difference  between two date) 
Skrypt tworzy funkcję pobierającą 2 daty i wyświetlającą różnice czasu w formie: 
np: 7 Lat , 39 Tygodni , 1 Dzien , 9 Godzin , 42 Minuty, 43 Sekundy  
np: 42 Minuty, 43 Sekundy  
Skrypt jest bardzo elastyczny i łątwo go dopasować do swoich potrzeb.
// Przykład *******************************************************************
 $od = strtotime(date('2001-06-09 14:00:00')); // pobieramy czas w formie zwracanje przez funkcję strtotime
 $do = strtotime(date("Y-m-d G:i:s"));
 
 echo CalcDiff($do,$od); // wyświetlamy różnice date ;]
Listing
<?php
function CalcDiff($currTime, $origTime)
{
$showDiff = '';
// Set times
$currTime = intval($currTime);
$origTime = intval($origTime);
if ($currTime<$origTime) { $diff = $origTime-$currTime; }
else { $diff = $currTime-$origTime; }
// Start Years
$yrs = floor($diff/31556926); // 31556926 secs/yr
if ($yrs > 0)
{
$diff = $diff - ($yrs*31556926);
$showDiff .= "{$yrs}";
$showDiff .= $yrs>1 ? ' Lat ' : '';
$showDiff .= $yrs<2 ? ' Rok ' : '';
}
unset($yrs); // End Years
// Start Months
$mos = floor($difference/2629743.83); // 2629743.83 secs/mo
if ($mos > 0)
{
$diff = $diff - ($mos*2629743.83);
$showDiff .= empty($showDiff) ? '' : ', ';
$showDiff .= "{$mos}";
$showDiff .= 1<$mos && $mos<5 ? ' Miesiące ' : '';
$showDiff .= $mos>4 ? ' Miesięcy ' : '';
$showDiff .= $mos<1 ? ' Miesiąc ' : '';
}
unset($mos); // End Months
// Start Weeks
$wks = floor($diff/604800); // 604800 secs/wk
if ($wks > 0)
{
$diff = $diff - ($wks*604800);
$showDiff .= empty($showDiff) ? '' : ', ';
$showDiff .= "{$wks}";
$showDiff .= 1<$wks && $wks<5 ? ' Tygodnie ' : '';
$showDiff .= $wks>4 ? ' Tygodni ' : '';
$showDiff .= $wks<2 ? ' Tydzien ' : '';
}
unset($wks); // End Weeks
// Start Days
$days = floor($diff/86400); // 86400 secs/day
if ($days > 0)
{
$diff = $diff - ($days*86400);
$showDiff .= empty($showDiff) ? '' : ', ';
$showDiff .= "{$days}";
$showDiff .= $days>1 ? ' Dni ' : '';
$showDiff .= $days<2 ? ' Dzien ' : '';
}
unset($days); // End Days
// Start Hours
$hrs = floor($diff/3600); // 3600 secs/hr
if ($hrs > 0) {
$diff = $diff - ($hrs*3600);
$showDiff .= empty($showDiff) ? '' : ', ';
$showDiff .= "{$hrs}";
$showDiff .= 1<$hrs && $hrs<5 ? ' Godziny ' : '';
$showDiff .= $hrs<2 ? ' Godzina ' : '';
$showDiff .= $hrs>4 ? ' Godzin ' : '';
}
unset($hrs); // End Hours
// Start Minutes
$mins = floor($diff/60); // 60 secs/min
if ($mins > 0) {
$diff = $diff - ($mins*60);
$showDiff .= empty($showDiff) ? '' : ', ';
$showDiff .= "{$mins}";
$showDiff .= 1<$mins && $mins<5 ? ' Minuty ' : '';
$showDiff .= $mins<2 ? ' Minuta' : '';
$showDiff .= $mins>4 ? ' Minut' : '';
}
unset($mins); // End Minutes
// Start Seconds
if ($diff > 0)
{
$showDiff .= empty($showDiff) ? '' : ', ';
$showDiff .= "{$diff}";
$showDiff .= 1<$diff && $diff<5 ? ' Sekundy ' : '';
$showDiff .= $diff>4 ? ' Sekund ' : '';
$showDiff .= $diff<2 ? ' Sekunda ' : '';
} // End Seconds
unset($diff); // Free unused memory
// Zwraca różnice
if ($currTime<$origTime) { $showDiff = "- {$showDiff}"; }
return $showDiff;
}
// Przykład *******************************************************************
$od = strtotime(date('2001-06-09 14:00:00')); // pobieramy czas w formie zwracanje przez funkcję strtotime
$do = strtotime(date("Y-m-d G:i:s"));
echo CalcDiff($do,$od); // wyświetlamy różnice date ;]
?>
Dodano przez: igor  
Ranga: Administrator serwisu Punktów: 0
Ranga: Administrator serwisu Punktów: 0
Komentarze użytkowników
	    Igor dzięki za skrypt
Poprawiłem 2 błędy:
	
	
- Zobacz kod dodany do tego wpisu
  	 		- 
				function CalcDiff($currTime, $origTime)
 {
 $showDiff = '';
 
 // Set times
 $currTime = intval($currTime);
 $origTime = intval($origTime);
 if ($currTime<$origTime) { $diff = $origTime-$currTime; }
 else { $diff = $currTime-$origTime; }
 
 // Start Years
 $yrs = floor($diff/31556926); // 31556926 secs/yr
 if ($yrs > 0)
 {
 $diff = $diff - ($yrs*31556926);
 $showDiff .= "{$yrs}";
 $showDiff .= $yrs>1 ? ' Lat ' : '';
 $showDiff .= $yrs<2 ? ' Rok ' : '';
 }
 unset($yrs); // End Years
 
 // Start Months
 $mos = floor($diff/2629743.83); // 2629743.83 secs/mo
 if ($mos > 0)
 {
 $diff = $diff - ($mos*2629743.83);
 $showDiff .= empty($showDiff) ? '' : ', ';
 $showDiff .= "{$mos}";
 $showDiff .= 1<$mos && $mos<5 ? ' Miesiące ' : '';
 $showDiff .= $mos>4 ? ' Miesięcy ' : '';
 $showDiff .= $mos<2 ? ' Miesiąc ' : '';
 }
 unset($mos); // End Months
 
 // Start Weeks
 $wks = floor($diff/604800); // 604800 secs/wk
 if ($wks > 0)
 {
 $diff = $diff - ($wks*604800);
 $showDiff .= empty($showDiff) ? '' : ', ';
 $showDiff .= "{$wks}";
 $showDiff .= 1<$wks && $wks<5 ? ' Tygodnie ' : '';
 $showDiff .= $wks>4 ? ' Tygodni ' : '';
 $showDiff .= $wks<2 ? ' Tydzien ' : '';
 }
 unset($wks); // End Weeks
 
 // Start Days
 $days = floor($diff/86400); // 86400 secs/day
 if ($days > 0)
 {
 $diff = $diff - ($days*86400);
 $showDiff .= empty($showDiff) ? '' : ', ';
 $showDiff .= "{$days}";
 $showDiff .= $days>1 ? ' Dni ' : '';
 $showDiff .= $days<2 ? ' Dzien ' : '';
 }
 unset($days); // End Days
 
 // Start Hours
 $hrs = floor($diff/3600); // 3600 secs/hr
 if ($hrs > 0) {
 $diff = $diff - ($hrs*3600);
 $showDiff .= empty($showDiff) ? '' : ', ';
 $showDiff .= "{$hrs}";
 $showDiff .= 1<$hrs && $hrs<5 ? ' Godziny ' : '';
 $showDiff .= $hrs<2 ? ' Godzina ' : '';
 $showDiff .= $hrs>4 ? ' Godzin ' : '';
 }
 unset($hrs); // End Hours
 
 // Start Minutes
 $mins = floor($diff/60); // 60 secs/min
 if ($mins > 0) {
 $diff = $diff - ($mins*60);
 $showDiff .= empty($showDiff) ? '' : ', ';
 $showDiff .= "{$mins}";
 $showDiff .= 1<$mins && $mins<5 ? ' Minuty ' : '';
 $showDiff .= $mins<2 ? ' Minuta' : '';
 $showDiff .= $mins>4 ? ' Minut' : '';
 }
 unset($mins); // End Minutes
 
 // Start Seconds
 if ($diff > 0)
 {
 $showDiff .= empty($showDiff) ? '' : ', ';
 $showDiff .= "{$diff}";
 $showDiff .= 1<$diff && $diff<5 ? ' Sekundy ' : '';
 $showDiff .= $diff>4 ? ' Sekund ' : '';
 $showDiff .= $diff<2 ? ' Sekunda ' : '';
 
 } // End Seconds
 
 unset($diff); // Free unused memory
 
 // Zwraca różnice
 if ($currTime<$origTime) { $showDiff = "- {$showDiff}"; }
 return $showDiff;
 }
 
- 
				
		autor: kocio | 229 | 2009-05-27 15:02:49
	
	    Przerobiłem kod aby wyświetlał tylko np tylko rok lub Miesiąc itd w zależności jaka jest różnica
	
	
- Zobacz kod dodany do tego wpisu
  	 		- 
				<?php
 function CalcDiff($currTime, $origTime)
 {
 $showDiff = '';
 
 // Set times
 $currTime = intval($currTime);
 $origTime = intval($origTime);
 if ($currTime<$origTime) { $diff = $origTime-$currTime; }
 else { $diff = $currTime-$origTime; }
 
 // Start Years
 $yrs = floor($diff/31556926); // 31556926 secs/yr
 if ($yrs > 0)
 {
 $diff = $diff - ($yrs*31556926);
 $showDiff .= "{$yrs}";
 $showDiff .= $yrs>1 ? ' Lat ' : '';
 $showDiff .= $yrs<2 ? ' Rok ' : '';
 }
 $lat = $yrs;
 unset($yrs); // End Years
 
 // Start Months
 $mos = floor($diff/2629743.83); // 2629743.83 secs/mo
 if ($mos > 0)
 {
 $diff = $diff - ($mos*2629743.83);
 $showDiff .= empty($showDiff) ? '' : ', ';
 $showDiff .= "{$mos}";
 $showDiff .= 1<$mos && $mos<5 ? ' Miesiące ' : '';
 $showDiff .= $mos>4 ? ' Miesięcy ' : '';
 $showDiff .= $mos<1 ? ' Miesiąc ' : '';
 }
 $mies = $mos;
 unset($mos); // End Months
 
 // Start Weeks
 $wks = floor($diff/604800); // 604800 secs/wk
 if ($wks > 0)
 {
 $diff = $diff - ($wks*604800);
 $showDiff .= empty($showDiff) ? '' : ', ';
 $showDiff .= "{$wks}";
 $showDiff .= 1<$wks && $wks<5 ? ' Tygodnie ' : '';
 $showDiff .= $wks>4 ? ' Tygodni ' : '';
 $showDiff .= $wks<2 ? ' Tydzien ' : '';
 }
 $tyg=$wks;
 unset($wks); // End Weeks
 
 // Start Days
 $days = floor($diff/86400); // 86400 secs/day
 if ($days > 0)
 {
 $diff = $diff - ($days*86400);
 $showDiff .= empty($showDiff) ? '' : ', ';
 $showDiff .= "{$days}";
 $showDiff .= $days>1 ? ' Dni ' : '';
 $showDiff .= $days<2 ? ' Dzien ' : '';
 }
 $dni = $days;
 unset($days); // End Days
 
 // Start Hours
 $hrs = floor($diff/3600); // 3600 secs/hr
 if ($hrs > 0) {
 $diff = $diff - ($hrs*3600);
 $showDiff .= empty($showDiff) ? '' : ', ';
 $showDiff .= "{$hrs}";
 $showDiff .= 1<$hrs && $hrs<5 ? ' Godziny ' : '';
 $showDiff .= $hrs<2 ? ' Godzina ' : '';
 $showDiff .= $hrs>4 ? ' Godzin ' : '';
 }
 $godz = $hrs;
 unset($hrs); // End Hours
 
 // Start Minutes
 $mins = floor($diff/60); // 60 secs/min
 if ($mins > 0) {
 $diff = $diff - ($mins*60);
 $showDiff .= empty($showDiff) ? '' : ', ';
 $showDiff .= "{$mins}";
 $showDiff .= 1<$mins && $mins<5 ? ' Minuty ' : '';
 $showDiff .= $mins<2 ? ' Minuta' : '';
 $showDiff .= $mins>4 ? ' Minut' : '';
 }
 $min = $mins;
 unset($mins); // End Minutes
 
 // Start Seconds
 if ($diff > 0)
 {
 $showDiff .= empty($showDiff) ? '' : ', ';
 $showDiff .= "{$diff}";
 $showDiff .= 1<$diff && $diff<5 ? ' Sekundy ' : '';
 $showDiff .= $diff>4 ? ' Sekund ' : '';
 $showDiff .= $diff<2 ? ' Sekunda ' : '';
 
 } // End Seconds
 
 unset($diff); // Free unused memory
 
 
 // Zwraca różnice
 if ($currTime<$origTime) { $showDiff = "- {$showDiff}"; }
 
 if($lat){
 if($lat==1)$data = ' Rok';
 else if($lat>1&&$lat<5)$data = ' Lata';
 else if($lat>4)$data = ' Lat';
 $bedeZa = $lat.$data;
 }else if($mies){
 if($mies==1)$data = ' Miesiąc';
 else if($mies>1&&$mies<5)$data = ' Miesiące';
 else if($mies>4)$data = ' Miesięcy';
 $bedeZa = $mies.$data;
 }else if($tyg){
 if($tyg==1)$data = ' Tydzień';
 else if($tyg>1&&$tyg<5)$data = ' Tygodnie';
 else if($tyg>4)$data = ' Tygodni';
 $bedeZa = $tyg.$data;
 }else if($dni){
 if($dni==1)$data = ' Dzień';
 else if($dni>1&&$dni<5)$data = ' Dni';
 else if($dni>4)$data = ' Dni';
 $bedeZa = $dni.$data;
 }else if($godz){
 if($godz==1)$data = ' Godzine';
 else if($godz>1&&$godz<5)$data = ' Godziny';
 else if($godz>4&&$godz<22)$data = ' Godzin';
 else if($godz>21)$data = ' Godziny';
 $bedeZa = $godz.$data;
 }else{
 if($min==1)$data = ' Minuta';
 else if($min>1&&$min<5)$datan = ' Minuty';
 else if($min>4)$data = ' Minut';
 $bedeZa = $min.$data;
 }
 
 
 
 
 return $bedeZa;
 }
 
 
 
 ?>
 
- 
				
		autor: Igor | 411 | 2009-08-16 13:18:37
	
:: Losowe artykuły 

:: Wymiana linków 
    
	Modowe inspiracje |
        Android Gry i Aplikacje |
        ZaplanujTransport.pl: Przeprowadzki, transport, aukcje |
        Logo dla firmy |
        Change Tires - Car Weather Forecast Reminder |
        Laminas: MVC Framework for PHP |
        IT Books Reviews and Programming: JS, JAVA, PHP, ANDROID, CSS | 
        Katalog roślin |
        Programming articles: JAVA, PHP, C++, Python, JavaScript |
        Kancelaria Adwokacka Łukasz Huszno
        
    

 
  
				

 
                             
 


 
                        
 
		 
	