Колко дни остават до дадена дата

Статус
Not open for further replies.
PHP:
//FUNCTION FOR TIME LEFT 
 function time_left($integer) 
 {  
  
     $seconds=$integer;  
  
     if ($seconds/60 >=1)  
  
     {  
  
     $minutes=floor($seconds/60);  
  
     if ($minutes/60 >= 1)  
  
     { # Hours  
  
     $hours=floor($minutes/60);  
  
     if ($hours/24 >= 1)  
  
     { #days  
  
     $days=floor($hours/24);  
  
     if ($days/7 >=1)  
  
     { #weeks  
  
     $weeks=floor($days/7);  
  
     if ($weeks>=2) $return="$weeks Weeks";  
  
     else $return="$weeks Week";  
  
     } #end of weeks  
  
     $days=$days-(floor($days/7))*7;  
  
     if ($weeks>=1 && $days >=1) $return="$return, ";  
  
     if ($days >=2) $return="$return $days days"; 
  
     if ($days ==1) $return="$return $days day"; 
  
     } #end of days 
  
     $hours=$hours-(floor($hours/24))*24;  
  
     if ($days>=1 && $hours >=1) $return="$return, ";  
  
     if ($hours >=2) $return="$return $hours hours"; 
  
     if ($hours ==1) $return="$return $hours hour"; 
  
     } #end of Hours 
  
     $minutes=$minutes-(floor($minutes/60))*60;  
  
     if ($hours>=1 && $minutes >=1) $return="$return, ";  
  
     if ($minutes >=2) $return="$return $minutes minutes"; 
  
     if ($minutes ==1) $return="$return $minutes minute"; 
  
     } #end of minutes  
  
     $seconds=$integer-(floor($integer/60))*60;  
  
     if ($minutes>=1 && $seconds >=1) $return="$return, ";  
  
     if ($seconds >=2) $return="$return $seconds seconds"; 
  
     if ($seconds ==1) $return="$return $seconds second"; 
  
     $return="$return.";  
  
     return $return;  
  
 } 
  
 /* Returns a string of the amount of time the integer (in seconds) refers 
  to.  
   
  $timeleft=time_left(86400);  
   
  $timeleft='1 day'.  
   
  Will not return anything higher than weeks. False if $integer=0 or fails.  
   
  */
 
Може и аз нещо да бъркам

PHP:
function time_left($integer) 
 {  
  
     $seconds=$integer;  
  
     if ($seconds/60 >=1)  
  
     {  
  
     $minutes=floor($seconds/60);  
  
     if ($minutes/60 >= 1)  
  
     { # Hours  
  
     $hours=floor($minutes/60);  
  
     if ($hours/24 >= 1)  
  
     { #days  
  
     $days=floor($hours/24);  
  
     if ($days/7 >=1)  
  
     { #weeks  
  
     $weeks=floor($days/7);  
  
     if ($weeks>=2) $return="$weeks Weeks";  
  
     else $return="$weeks Week";  
  
     } #end of weeks  
  
     $days=$days-(floor($days/7))*7;  
  
     if ($weeks>=1 && $days >=1) $return="$return, ";  
  
     if ($days >=2) $return="$return $days days"; 
  
     if ($days ==1) $return="$return $days day"; 
  
     } #end of days 
  
     $hours=$hours-(floor($hours/24))*24;  
  
     if ($days>=1 && $hours >=1) $return="$return, ";  
  
     if ($hours >=2) $return="$return $hours hours"; 
  
     if ($hours ==1) $return="$return $hours hour"; 
  
     } #end of Hours 
  
     $minutes=$minutes-(floor($minutes/60))*60;  
  
     if ($hours>=1 && $minutes >=1) $return="$return, ";  
  
     if ($minutes >=2) $return="$return $minutes minutes"; 
  
     if ($minutes ==1) $return="$return $minutes minute"; 
  
     } #end of minutes  
  
     $seconds=$integer-(floor($integer/60))*60;  
  
     if ($minutes>=1 && $seconds >=1) $return="$return, ";  
  
     if ($seconds >=2) $return="$return $seconds seconds"; 
  
     if ($seconds ==1) $return="$return $seconds second"; 
  
     $return="$return.";  
  
     return $return;  
  
 } 
 
 $new = mktime(0,0,0, date("m"), date("d", 1314285312)+4, date("Y"));
 echo time_left($new);
 
защо просто не направим сметката по timestamp:

PHP:
<?php
echo "Days:".DaysLeft('2011-08-20');

function DaysLeft( $DateString, $Period='d' ) {
    date_default_timezone_set('Europe/Sofia');
    $times = array('i'=>60 /*min*/,'h'=>60*60 /*hour*/,'d'=>60*60*24 /*day*/,'w'=>60*60*24*7 /*week*/);
    return (strtotime($DateString)>0) ? ceil( (time()-strtotime($DateString))/$times[$Period])-1 : false;
}
?>
 
Код:
     $time_left= 100000; //колко време остава в time формат

       $days = floor($time_left / 86400); 

        $time_left = $time_left - $days * 86400; 

        $hours = floor($time_left / 3600); 

        $time_left = $time_left - $hours * 3600; 

        $minutes = floor($time_left / 60); 

        $seconds = $time_left - $minutes * 60;

echo "остават ".$days."дена ".$hours.":".$minutes;

Може да се добави и секунди...
 
Статус
Not open for further replies.

Back
Горе