Comunidad de diseño web y desarrollo en internet online

Imprimir fechas en base a un rango.

Citar            
MensajeEscrito el 25 Sep 2008 07:31 pm
Buenos tardes.
Si alguien ha hecho esto le ruego que me ayude. es un programa que estoy desarroyando en php y mysql
para reservaciones de un hotel. el problema es lo siguiente:

inicio:2008-09-25
fin:2008-09-27
como puedo hacerle o si existe alguna funcion que me permita imprimir en base a un rago las fechas
por separado por ejemplo en este caso seria asi:
2008-09-25
2008-09-26
2008-09-27
por que mi idea es que en base a una temporada se aplique determinado descuento.
desde ya muchas gracias... [email protected]

Por adoberoberto

10 de clabLevel



 

msie7
Citar            
MensajeEscrito el 25 Sep 2008 07:40 pm
averigua algo sobre operadores logicos en mysql seria fecha mayor o igual a 2008-09-25 y fecha menor o igual a 2008-09-27

este select te tendria q devolverte solo dos datos bueno voy a averiguar como se podria hacer si encuentro algo te digo

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 26 Sep 2008 04:18 pm
probare lo qeu me dices amigo y te comento luego gracias por responder...

Por adoberoberto

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Oct 2008 07:11 pm
resolvi el problema con un for e incemente la fecha de la siguiente manera:
$fecha = "2008-10-26";
$fecha_en_formato_unix = strtotime($fecha);
$proximo_dia = $fecha_en_formato_unix + 3600*24; //sumamos 1 día en segundos
echo date("Y-m-d",$proximo_dia);
hoy es un gran dia para mi lo en contre en forosdelweb.com posteado por xbx gracias
ATTER [email protected]

Por adoberoberto

10 de clabLevel



 

msie7
Citar            
MensajeEscrito el 08 Oct 2008 07:50 pm
Pues es una opción, pero strtotime solo lo utilizo cuando de plano la fecha solo la tengo en string...

Deben acostumbrarse mas al mktime, es una función hecha concretamente para crear un timestamp, que sería como un datatype mas preciso para manejo de fechas.

Para crear tu rango simplemente tenias que hacer:

Código :

$dia = mktime(0,0,0,9,25,2008);
$dia_siguiente = mktime(0,0,0,9,26,2008);
$dia_siguiente_sig = mktime(0,0,0,9,27,2008);


Y para mostrarlos:

Código :

echo date("Y-m-d", $dia);
echo date("Y-m-d", $dia_siguiente);
echo date("Y-m-d", $dia_siguiente_sig);


25, 26 y 27 es el dia. Puede ser una variable: $dia = 25. Si tu dia es 30 no importa, mktime acomoda el mes si no tiene 31 o llegas a 32 o cosas así, mktime esta hecho para manejo de fechas y hace todo.

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 09 Oct 2008 09:52 pm
ok amigo Dano lo que dices es correcto pero el problema es que yo solo tengo dos datos obtenidos de un formulario anterior: fechainicio y fechafin entonces en el siguiente formulario solo queria que se hiciera un desgloce de esas dos fechas
si por ejemplo se eligio fechainicio:2008-11-27 fechafin: 2008-12-02 en el siguiente formulario tendria que desglozar lo sig.
2008-11-27
2008-11-28
2008-11-29
2008-12-01
2008-12-02

Por adoberoberto

10 de clabLevel



 

msie7
Citar            
MensajeEscrito el 09 Oct 2008 11:00 pm
amigos pasa algo muy raro con este codigo no se por que cuando elijo las liguiestes dos fechas: fechainicio 2008-11-02 y fechafin:2008-11-04 fallla el programa y con otras fechas funciona perfecto. ha y tambien para 2009-11-01

$i=0;
while ($i < $dias){
echo "<br>";

echo "$inifecha";
$unix= strtotime($inifecha);
$siguiente= $unix + 3600*24;
$inifecha = date("Y-m-d",$siguiente);

$i=$i+1;
}
ayuden por favor... gracias

Por adoberoberto

10 de clabLevel



 

msie7
Citar            
MensajeEscrito el 10 Oct 2008 07:53 am
No te funciona precisamente por lo que dije arriba, strtodate a veces falla y este es un claro ejemplo, si lo haces a mi manera, nunca fallará, porque lo hacemos de la manera correcta:

Código :

$inifecha = "2008-11-02";
$lafecha = explode("-",$inifecha);
$dias = 3;
$i=0;
while ($i < $dias){
$inifecha = date("Y-m-d",mktime(0,0,0,$lafecha[1],$lafecha[2]+$i,$lafecha[0]));
echo "<br>";
echo "$inifecha";
$i=$i+1;
}

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 13 Oct 2008 05:11 pm
amigo Dano probare este codigo gracias por tu respuesta un abrazo
ATTE:adoberoberto

Por adoberoberto

10 de clabLevel



 

msie7
Citar            
MensajeEscrito el 13 Oct 2008 05:23 pm
Amigo "Dano" eres un EXPERTO: Ejecute el codigo y funciona tal y como me lo esperaba, muchas gracias por tu pronta respuesta.

¿oyes una pregunta de donde eres?

Por adoberoberto

10 de clabLevel



 

msie7
Citar            
MensajeEscrito el 13 Oct 2008 05:48 pm

adoberoberto escribió:

Amigo "Dano" eres un EXPERTO: Ejecute el codigo y funciona tal y como me lo esperaba, muchas gracias por tu pronta respuesta.

¿oyes una pregunta de donde eres?

De Aguascalientes, México y tu?

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 13 Oct 2008 06:04 pm
Ha orales que chido soy de Oaxaca, Mexico. agradezco tu ayuda amigo, espero poder ayudarte algundia.

Por adoberoberto

10 de clabLevel



 

msie7
Citar            
MensajeEscrito el 04 Oct 2009 04:38 pm
Hola, aunque el post tiene ya tiempo espero que me puedas ayudar.
El script funciona a la perfeccion, ahora pretendo que el resultado se pueda insertar en una base de datos mysql.
He probado a dar al value el valor de la variable pero se me ingresa la ultima fecha.
¿Hay alguna posibilidad de ingresar todas las fechas?

Un saludo de antemano


Dano escribió:

No te funciona precisamente por lo que dije arriba, strtodate a veces falla y este es un claro ejemplo, si lo haces a mi manera, nunca fallará, porque lo hacemos de la manera correcta:

Código :

$inifecha = "2008-11-02";
$lafecha = explode("-",$inifecha);
$dias = 3;
$i=0;
while ($i < $dias){
$inifecha = date("Y-m-d",mktime(0,0,0,$lafecha[1],$lafecha[2]+$i,$lafecha[0]));
echo "<br>";
echo "$inifecha";
$i=$i+1;
}

Por Patricius234

0 de clabLevel



 

msie8
Citar            
MensajeEscrito el 04 Oct 2009 08:50 pm

Código :

$inifecha = "2008-11-02";
$lafecha = explode("-",$inifecha);
$dias = 3;
$i=0;
$inifecha = array();
while ($i < $dias){
$inifecha[] = date("Y-m-d",mktime(0,0,0,$lafecha[1],$lafecha[2]+$i,$lafecha[0]));
$i=$i+1;
}

$temp_sql = implode(',',$inifecha);

$sql = "INSERT INTO `reservas` (`fecha`) VALUES ($temp_sql)";

Por york3rs

Claber

561 de clabLevel

1 tutorial

Genero:Masculino  

LA___Chile

msie8
Citar            
MensajeEscrito el 24 Abr 2012 02:03 pm
gracias por el aporte ... quisiera que me ayudaran ya que tengo que usarlo para crear un select html pero no lo he logrado. tengo el siguiente codigo
<?php
$table = "<form name=\"frmWarranty\" id=\"frmWarranty\" action=\"\" method=\"post\">\n".
"<table align=\"center\" width=\"70%\" border=\"1\" cellpadding=\"0\" cellspacing=\"0\">";

$table .="<tr>
<td align=\"center\">&nbsp;</td>
<td align=\"center\">AUTORIZACION</td>
<td align=\"center\">NOMBRE DEL PROFESIONAL</td>
<td align=\"center\">ENTIDAD</td>
<td align=\"center\">PACIENTE</td>
<td align=\"center\">NOMBRE</td>
<td align=\"center\">FECHA PROGRAMADA</td>
<td align=\"center\">ACTIVIDAD</td>
<td align=\"center\">REPORTE</td>
<td align=\"center\">FECHA REALIZADA</td>
</tr>";

while ($row = mysql_fetch_assoc($result))
{


$table .= "
<tr bgcolor=\"#e9e6ed\">\n".
"<td>\n".
"<input type=\"checkbox\" name=\"box[]\" id=\"box$row[id1]\" value=\"$row[id1]\">$row[id1]\n".
"</td>\n".
"<td align=\"center\">$row[AUTORIZACION]</td>\n".
"<td align=\"center\">$row[PROFESIONAL]</td>\n".
"<td align=\"center\">$row[entidad]</td>\n".
"<td align=\"center\">$row[PACIENTE]</td>\n".
"<td align=\"center\">$row[nombre_comp]</td>\n".
"<td align=\"center\">$row[FECH_ACT]</td>\n".
"<td align=\"center\">$row[ACTIVIDAD]</td>\n".
"<td>\n".
"<select name=\"reporte$row[id1]\" id=\"reporte$row[id1]\">
<option value=\"0\">NO REALIZADA</option>
<option value=\"1\" selected=\"selected\">REALIZADA</option>
<option value=\"2\">VISITA FALLIDA</option>
<option value=\"3\">PACIENTE HOSPITALIZADO</option>
<option value=\"4\">PACIENTE SE NIEGA A LA ATENCION</option>
</select>
</td>\n".

$inifecha = $row[FECH_ACT];
$lafecha = explode("-",$inifecha);
$dias = 3;
$i=0;
$valorAAsignar = "
<select name='fecha$row[id1]' id='fecha$row[id1]' class='textbox' onChange=''><option value='0'>-Día-</option>";
while ($i < $dias){
$inifecha = date("Y-m-d",mktime(0,0,0,$lafecha[1],$lafecha[2]+$i,$lafecha[0]));
$valorAAsignar .= "<option value='$inifecha'> $inifecha </option>";
//echo "$inifecha";
$i=$i+1;
}
$valorAAsignar .= "</select>

";

echo $valorAAsignar;

"<td align=\"center\">$valorAAsignar</td>\n".
"</tr>\n";

}

if($total_rows)
{
$table .= "<tr>\n".

"</td>\n".
"</tr>\n";

$table .= "<tr>\n".
"<td colspan=\"9\" align=\"center\" style=\"padding:20px;\">TOTAL DE REGISTROS $total_rows</td>\n".
"</tr>\n";

$table .= "<tr>\n".
"<td align=\"center\" colspan=\"9\">\n".
"<input type=\"submit\" name=\"ACTUALIZAR\" value=\"ACTUALIZAR\">&nbsp;&nbsp;&nbsp;&nbsp;\n".

"</td>\n".
"</tr>\n";
}
else
{
$table .= "<tr>\n".
"<td colspan=\"8\" align=\"center\" style=\"padding:20px;\">EL USUARIO NO TIENE REGISTROS PARA VERIFICAR</td>\n".
"</tr>\n";
}

$table .= "</table></form>";

echo $table;
?>
como veran el formulario se genera desde una consulta a la base de datos y con este actualizo mediante checkbox los registros seleccionados. lo que quiero es que partiendo de la fecha establecida en la base de datos se genere un select con 7 dias menos a esa fecha para que se escoja el dia en que se realizo la actividad. no he podido imprimir el select en la zona correspondiente de la tabla.

no se si fuy claro pero agradezco su ayuda

Por emersongonzal86

0 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.