<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Push The Button &#187; cuenta atras</title>
	<atom:link href="http://pushthebutton.es/archivos/tag/cuenta-atras/feed" rel="self" type="application/rss+xml" />
	<link>http://pushthebutton.es</link>
	<description>Worklog de electronica, DIY, e informática de Alwar</description>
	<lastBuildDate>Thu, 10 Nov 2011 16:28:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Cuenta atras en PHP</title>
		<link>http://pushthebutton.es/archivos/cuenta-atras-en-php</link>
		<comments>http://pushthebutton.es/archivos/cuenta-atras-en-php#comments</comments>
		<pubDate>Fri, 12 Oct 2007 19:54:35 +0000</pubDate>
		<dc:creator>Alwar</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Scripts y Programacion]]></category>
		<category><![CDATA[countdown]]></category>
		<category><![CDATA[cuenta atras]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://pushthebutton.es/?p=41</guid>
		<description><![CDATA[Hoy me apetecía escribir en el blog xD, y en vez de dejarme cosas para días que no tenga nada que contar, voy a pegar aquí un pequeño script en php para que veáis como podéis hacer una cuenta atrás, o un contador de tiempo hacia delante con las funciones de tiempo que nos ofrece [...]]]></description>
			<content:encoded><![CDATA[<p>Hoy me apetecía escribir en el blog xD, y en vez de dejarme cosas para días que no tenga nada que contar, voy a pegar aquí un pequeño script en <a href="http://php.net">php</a> para que veáis como podéis hacer una cuenta atrás, o un contador de tiempo hacia delante con las funciones de tiempo que nos ofrece php.</p>
<blockquote><p>
function countdown($hor,$min,$seg,$mes,$dia,$ano) {<br />
			   //mktime(hora, min, seg , mes,  dia,  anyo)<br />
	$final_day=	mktime($hor,$min,$seg,$mes,$dia,$ano); //Calculamos la fecha unix del dia final<br />
	$hoy_exed	=	time(); //Calculamos la fecha unix de hoy<br />
	if ($final_day &gt; $hoy_exed) //Si la fecha final es mayor a la de hoy<br />
	{<br />
		$remaining = $final_day &#8211; $hoy_day; //Averiguamos cuantos segundos quedan para el dia d y hora h<br />
		$hora = $remaining/3600; //Dividimos los segundos entre 3600 para obtener las horas que quedan.<br />
		$minx = explode(&#8220;.&#8221;,$hora); //Extraemos parte entera y decimal<br />
		$min = (&#8220;0.&#8221;.$minx[1]) * 60; //Multiplicamos por 60 para saber cuantos minutos quedan<br />
		$segx = explode(&#8220;.&#8221;,$min); //Extraemos parte entera y decimal<br />
		$segd = (&#8220;0.&#8221;.$segx[1]) * 60; //Multiplicamos por 60 para saber cuantos segundos quedan.<br />
		$seg = explode(&#8220;.&#8221;,$segd); //Desechamos parte decimal<br />
		return &#8220;$minx[0]h:$segx[0]m:$seg[0]s&#8221;; //Devolvemos un string formateado con lo que queda.<br />
	}<br />
	 else<br />
	{<br />
		return &#8220;Fin&#8221;;<br />
	}<br />
}</p></blockquote>
<p><i>Lee el resto de la entrada para ver la explicacion</i><br />
<span id="more-41"></span><br />
He creado una funcion para poder reutilizar el codigo. Principalmente hacemos uso de las funciones <a href="http://es2.php.net/manual/es/function.time.php">time()</a> y <a href="http://es2.php.net/manual/es/function.mktime.php">mktime()</a>.<br />
Time es una función que devuelve la fecha actual en Epoch Unix (esto significa que nos devolverá la cantidad de segundos que han pasado desde el 1 de Enero de 1970) y mktime es otra función que nos devuelve la fecha que le pasemos por argumento en Epoch Unix (Osea en segundos desde el 1 de Enero de 1970).</p>
<p>Entonces para hacer la cuenta atras, calculamos la fecha del día y hora en la que termina la cuenta atras con mktime():<br />
Ej para el 24 de Febrero del 2008 a las 16:30:<br />
<code>mktime(16, 30, 0 , 2,  24,  2008)</code><br />
y nos devolvera 1203867000 que es como decir 24/02/2008 a las 16:30:00.<br />
y ahora calculamos el dia de hoy a esta hora simplemente con time()<br />
Ej para hoy 12 de Octubre del 2007 sobre las 21:41 aproximadamente.<br />
<code>time()</code><br />
Y devuelve 1192218126. Entonces teniendo las fechas simplemente tenemos que restar para saber cuantos segundos faltan:<br />
1203867000 &#8211; 1192218126 = 11648874 (Si no me he equivocado xD)<br />
Pues quedan 11648874 segundos para que me pueda sacar el carnet B <img src='http://pushthebutton.es/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  pero dicho así no queda muy bonito.<br />
Para eso simplemente tenemos que dividirlo para obtener minutos, segundos o lo que queramos.<br />
Por Ejemplo:<br />
<code>echo (mktime(16, 30, 0, 2, 24, 2008) - time()) / (3600*24);</code><br />
Eso nos devuelve un numero (con decimales) que nos indica los dias que quedan para que me saque el carnet B <img src='http://pushthebutton.es/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>PD: El codigo de arriba del todo, la función completa, puede que no funcione correctamente, la escribi hace mucho tiempo y ahora no encuentro donde falla, pero antes iba bastante bien.</p>
]]></content:encoded>
			<wfw:commentRss>http://pushthebutton.es/archivos/cuenta-atras-en-php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

