Foros del Web » Programando para Internet » PHP »

Consulta sobre fechas

Estas en el tema de Consulta sobre fechas en el foro de PHP en Foros del Web. Buenas!! Tengo una duda y necesito de una orientacion sobre como lo puedo resolver. Tengo un formulario donde cargo la fecha de inicio y la ...
  #1 (permalink)  
Antiguo 05/01/2013, 13:24
 
Fecha de Ingreso: diciembre-2012
Mensajes: 33
Antigüedad: 11 años, 3 meses
Puntos: 0
Consulta sobre fechas

Buenas!! Tengo una duda y necesito de una orientacion sobre como lo puedo resolver.

Tengo un formulario donde cargo la fecha de inicio y la fecha de finalizacion de una licencia.
De ese modo, yo cargo por ejemplo
Fecha de inicio: 13/01/13
Fecha de finalizacion: 17/01/13

Una vez registrado, yo necesito consultar dicho pedido de licencia desde una cuenta con privilegios de administrador (donde se requiere otro tipo de información)
Lo que necesito que me muestre una tabla con la fecha de inicio, la de finalizacion pero en el medio, los días que esta de licencia, por ejemplo:

Fecha de inicio: 13/01/13
14/01/13
15/01/13
16/01/13
Fecha de finalizacion 17/01/13

Como puedo hacer para que, considerando la fecha de inicio y la de finalizacion, al hacer una consulta yo pueda también mostrar los dias que estan dentro de ese rango??
Muchas gracias!!
  #2 (permalink)  
Antiguo 05/01/2013, 13:55
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Consulta sobre fechas

Si dispones de una versión de PHP actualizada (mínimo 5.3) puedes hacer algo así:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $dt1 = new DateTime('14-01-2012');
  4. $dt2 = new DateTime('16-01-2012');
  5. $interval = new DateInterval("P1D");
  6. $dates = new DatePeriod($dt1, $interval, $dt2->add($interval));
  7.  
  8. foreach ($dates as $d) {
  9.     echo $d->format('d-m-Y') . '<br />';
  10. }

Cita:
14-01-2012
15-01-2012
16-01-2012
o puedes usar las funciones mktime, strtotime. Primero calculas la diferencia de días entre las 2 fechas, luego un bucle for que vaya de cero al número de días y con mktime o strtotime vas sumando los días en el bucle. A ese resultado, le das formato con la función date.

Cualquier duda me avisas.

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 07/01/2013, 07:40
 
Fecha de Ingreso: diciembre-2012
Mensajes: 33
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Consulta sobre fechas

Muchas gracias por la ayuda!! todavia estoy haciendo pruebas.. pero ya me va a salir! Un abrazo, cualquier cosa aviso por aca!
  #4 (permalink)  
Antiguo 09/01/2013, 06:55
 
Fecha de Ingreso: diciembre-2012
Mensajes: 33
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Consulta sobre fechas

Cita:
Iniciado por andresdzphp Ver Mensaje
Si dispones de una versión de PHP actualizada (mínimo 5.3) puedes hacer algo así:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $dt1 = new DateTime('14-01-2012');
  4. $dt2 = new DateTime('16-01-2012');
  5. $interval = new DateInterval("P1D");
  6. $dates = new DatePeriod($dt1, $interval, $dt2->add($interval));
  7.  
  8. foreach ($dates as $d) {
  9.     echo $d->format('d-m-Y') . '<br />';
  10. }



o puedes usar las funciones mktime, strtotime. Primero calculas la diferencia de días entre las 2 fechas, luego un bucle for que vaya de cero al número de días y con mktime o strtotime vas sumando los días en el bucle. A ese resultado, le das formato con la función date.

Cualquier duda me avisas.

Saludos.
Hola!! buen dia! Estoy dandole vueltas al asunto y no lo puedo corregir. El ejemplo que me pasaste funciona muy bien... pero cuando trato de adaptarlo no funciona.

El problema es que la fecha de inicio y la fecha de finalizacion deberian ser variables y no dos fechas fijas ya que ambas fechas son ingresadas por los usuarios.
Cuando pruebo el funcionamiento, y por lo que entiendo, me aparece un error en donde me dice algo como que no puede pasar a tiempo un string... o algo asi.. ahi abajo te aparece bien el error y el codigo que puse yo a ver si lo podes mirar... un abrazo!!

Este es el error:
Fatal error: Uncaught exception 'Exception' with message 'DateTime::__construct(): Failed to parse time string (30/12/2012) at position 0 (3): Unexpected character' in C:\localhost\control licencias\ver_licencias.php:173 Stack trace: #0 C:\localhost\control licencias\ver_licencias.php(173): DateTime->__construct('30/12/2012') #1 {main} thrown in C:\localhost\control licencias\ver_licencias.php on line 173

Este es el codigo
<?php
$fecha_inicio=$row['fecha_inicio'];
$fecha_fin=$row['fecha_fin'];
$dt1 = new DateTime($fecha_inicio);
$dt2 = new DateTime($fecha_fin);
$interval = new DateInterval("P1D");
$dates = new DatePeriod($dt1, $interval, $dt2->add($interval));

foreach ($dates as $d) {
echo $d->format('d/m/Y') . '<br />';
} ?>

Previamente, se realiza una consulta para traer a la pantalla solamente lo relacionado con un determinado pedido de licencia.
  #5 (permalink)  
Antiguo 09/01/2013, 10:34
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Consulta sobre fechas

Tienes que reemplazar los slash por guiones.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #6 (permalink)  
Antiguo 10/01/2013, 07:30
 
Fecha de Ingreso: diciembre-2012
Mensajes: 33
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Consulta sobre fechas

Si ya lo cambie pero sigue sin funcionar.. sigue tirando el mismo error!! Alguna otra sugerencia?
El problema esta cuando pongo que tanto la fecha de inicio como la de finalizacion son variables que surgen de una consulta.
Por ahi las estoy asignando de forma incorrecta.. ya no se que probar! :(
  #7 (permalink)  
Antiguo 10/01/2013, 08:19
 
Fecha de Ingreso: diciembre-2012
Mensajes: 33
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Consulta sobre fechas

Bueno listo ya lo pude arreglar... si bien el formato estaba en dd-mm-año automaticamente pasaba los guiones a barras y por eso tiraba error. Muchas gracias!

Etiquetas: formulario, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:09.