Guest

Untitled

By: a guest on Jan 28th, 2012  |  syntax: None  |  size: 5.29 KB  |  hits: 22  |  expires: Never
download  |  raw  |  embed  |  report abuse
Copied
  1. <?php
  2. // we will be sending Javascript codes, remember...
  3. header('Content-Type: text/javascript');
  4.  
  5. // select the timezone for your countdown
  6. $timezone = trim($_GET['timezone']);
  7. putenv("TZ=$timezone");
  8.  
  9. // Counting down to New Year's on 2020
  10. $countdown_to = trim($_GET['countto']); // 24-Hour Format: YYYY-MM-DD HH:MM:SS"
  11.  
  12. // Getting the current time
  13. $count_from = date("Y-m-d H:i:s"); // current time -- NO NEED TO CHANGE
  14.  
  15. // Date difference function. Will be using below
  16. function datediff($interval, $datefrom, $dateto, $using_timestamps = false) {
  17.   /*
  18.     $interval can be:
  19.     yyyy - Number of full years
  20.     q - Number of full quarters
  21.     m - Number of full months
  22.     y - Difference between day numbers
  23.       (eg 1st Jan 2004 is "1", the first day. 2nd Feb 2003 is "33". The datediff is "-32".)
  24.     d - Number of full days
  25.     w - Number of full weekdays
  26.     ww - Number of full weeks
  27.     h - Number of full hours
  28.     n - Number of full minutes
  29.     s - Number of full seconds (default)
  30.   */
  31.  
  32.   if (!$using_timestamps) {
  33.     $datefrom = strtotime($datefrom, 0);
  34.     $dateto = strtotime($dateto, 0);
  35.   }
  36.   $difference = $dateto - $datefrom; // Difference in seconds
  37.    
  38.   switch($interval) {
  39.    
  40.     case 'yyyy': // Number of full years
  41.  
  42.       $years_difference = floor($difference / 31536000);
  43.       if (mktime(date("H", $datefrom), date("i", $datefrom), date("s", $datefrom), date("n", $datefrom), date("j", $datefrom), date("Y", $datefrom)+$years_difference) > $dateto) {
  44.         $years_difference--;
  45.       }
  46.       if (mktime(date("H", $dateto), date("i", $dateto), date("s", $dateto), date("n", $dateto), date("j", $dateto), date("Y", $dateto)-($years_difference+1)) > $datefrom) {
  47.         $years_difference++;
  48.       }
  49.       $datediff = $years_difference;
  50.       break;
  51.  
  52.     case "q": // Number of full quarters
  53.  
  54.       $quarters_difference = floor($difference / 8035200);
  55.       while (mktime(date("H", $datefrom), date("i", $datefrom), date("s", $datefrom), date("n", $datefrom)+($quarters_difference*3), date("j", $dateto), date("Y", $datefrom)) < $dateto) {
  56.         $months_difference++;
  57.       }
  58.       $quarters_difference--;
  59.       $datediff = $quarters_difference;
  60.       break;
  61.  
  62.     case "m": // Number of full months
  63.  
  64.       $months_difference = floor($difference / 2678400);
  65.       while (mktime(date("H", $datefrom), date("i", $datefrom), date("s", $datefrom), date("n", $datefrom)+($months_difference), date("j", $dateto), date("Y", $datefrom)) < $dateto) {
  66.         $months_difference++;
  67.       }
  68.       $months_difference--;
  69.       $datediff = $months_difference;
  70.       break;
  71.  
  72.     case 'y': // Difference between day numbers
  73.  
  74.       $datediff = date("z", $dateto) - date("z", $datefrom);
  75.       break;
  76.  
  77.     case "d": // Number of full days
  78.  
  79.       $datediff = floor($difference / 86400);
  80.       break;
  81.  
  82.     case "w": // Number of full weekdays
  83.  
  84.       $days_difference = floor($difference / 86400);
  85.       $weeks_difference = floor($days_difference / 7); // Complete weeks
  86.       $first_day = date("w", $datefrom);
  87.       $days_remainder = floor($days_difference % 7);
  88.       $odd_days = $first_day + $days_remainder; // Do we have a Saturday or Sunday in the remainder?
  89.       if ($odd_days > 7) { // Sunday
  90.         $days_remainder--;
  91.       }
  92.       if ($odd_days > 6) { // Saturday
  93.         $days_remainder--;
  94.       }
  95.       $datediff = ($weeks_difference * 5) + $days_remainder;
  96.       break;
  97.  
  98.     case "ww": // Number of full weeks
  99.  
  100.       $datediff = floor($difference / 604800);
  101.       break;
  102.  
  103.     case "h": // Number of full hours
  104.  
  105.       $datediff = floor($difference / 3600);
  106.       break;
  107.  
  108.     case "n": // Number of full minutes
  109.  
  110.       $datediff = floor($difference / 60);
  111.       break;
  112.  
  113.     default: // Number of full seconds (default)
  114.  
  115.       $datediff = $difference;
  116.       break;
  117.   }    
  118.  
  119.   return $datediff;
  120. }
  121.  
  122. // getting Date difference in SECONDS
  123. $diff = datediff("s", $count_from, $countdown_to);
  124. ?>
  125.  
  126. // Heres where the Javascript starts
  127. countdown = <?=$diff?>;
  128.  
  129. // Converting date difference from seconds to actual time
  130. function convert_to_time(secs)
  131. {
  132.         secs = parseInt(secs); 
  133.         hh = secs / 3600;      
  134.         hh = parseInt(hh);     
  135.         mmt = secs - (hh * 3600);      
  136.         mm = mmt / 60; 
  137.         mm = parseInt(mm);     
  138.         ss = mmt - (mm * 60);  
  139.                
  140.         if (hh > 23)   
  141.         {      
  142.            dd = hh / 24;       
  143.            dd = parseInt(dd);  
  144.            hh = hh - (dd * 24);
  145.         } else { dd = 0; }     
  146.                
  147.         if (ss < 10) { ss = "0"+ss; }  
  148.         if (mm < 10) { mm = "0"+mm; }  
  149.         if (hh < 10) { hh = "0"+hh; }  
  150.         if (dd == 0) { return (hh+":"+mm+":"+ss); }    
  151.         else { 
  152.                 if (dd > 1) { return (dd+" days "+hh+":"+mm+":"+ss); }
  153.                 else { return (dd+" day "+hh+":"+mm+":"+ss); }
  154.         }      
  155. }
  156.  
  157. // Our function that will do the actual countdown
  158. function do_cd()
  159. {
  160.         if (countdown < 0)     
  161.         {      
  162.                 <?php
  163.                         if(strtolower(trim($_GET['do'])) == 'r' )
  164.                         {
  165.                 ?>
  166.                 // redirect web page
  167.                 document.location.href = "<?=$_GET['data']?>";
  168.                 <?php } ?>
  169.  
  170.                 <?php
  171.                         if(strtolower(trim($_GET['do'])) == 't' )
  172.                         {
  173.                 ?>
  174.                 // change text
  175.                 document.getElementById('cd').innerHTML = "<?=$_GET['data']?>";
  176.                 <?php } ?>
  177.  
  178.         }      
  179.         else   
  180.         {      
  181.                 document.getElementById('cd').innerHTML = convert_to_time(countdown);
  182.                 setTimeout('do_cd()', 1000);
  183.         }      
  184.         countdown = countdown - 1;     
  185. }
  186.  
  187. document.write("<div id='cd'></div>\n");
  188.  
  189. do_cd();
  190.  
  191. <? exit(); ?>