Foros del Web » Programando para Internet » PHP »

LLevar fecha a dias.

Estas en el tema de LLevar fecha a dias. en el foro de PHP en Foros del Web. Para atender actividades y con el objetivo de ofrecer a los usuarios una vía única, que le permita registrar la petición, la fecha en que ...
  #1 (permalink)  
Antiguo 22/08/2006, 12:25
 
Fecha de Ingreso: octubre-2005
Mensajes: 405
Antigüedad: 18 años, 6 meses
Puntos: 1
LLevar fecha a dias.

Para atender actividades y con el objetivo de ofrecer a los usuarios una vía única, que le permita registrar la petición, la fecha en que la planteó, el tiempo de respuesta, la solución aplicada, etc., estoy implementando un sistema de Solicitud de Requerimientos. Se trata de una aplicación informática que permite a los usuarios, mediante un navegador de Internet, acceder a una aplicación Web única, a través de la cual puede solicitar servicios, hacer consultas, comprobar el estado de sus solicitudes, etc.
Dispongo de:
Solicitante: Nombre Usuario
Fecha de solicitud: Fecha en que se hace la solicitud.
Asignado: Nombre a quien es asignado el desarrollo de la solicitud.
Fecha de asignación: Fecha en que se asigna el requerimiento.
Fecha de entrega probable: Fecha probable de entrega de requerimiento por parte del Asignado.
Fecha de término: La fecha en que el requerimiento ha sido concluido.

Ejemplo:
$solicitante=”German”;
$f-solicitud=”2006-07-21”;
$asignado=”Francisco”;
$f-asignado=”2006-07-22”;
$f-posible=”2006-08-20”;
$f-termino=”2006-08-22”;
$resto=0;
$fecha_e=$reg['f-posible'];
$ve=explode('-',$fecha_e);
$d_e=$ve[0].$ve[1].$ve[2];

$fhoy=date("Y-m-d");
$hy=explode('-',$fhoy);
$hoy=$hy[0].$hy[1].$hy[2];

if ($hoy < $d_e)
{
$resto=$d_e-$hoy;
$observa="Restan ".$resto." días.";
}
else
{
$resto=$hoy-$d_e;
$observa="Pasado en ".$resto." días.";

Por lo que se han dado cuenta que mi problema es llevar estas fechas a dias para calculo correcto y asi desplegar el mensaje correctamente.

de antemano se les agradece...
  #2 (permalink)  
Antiguo 22/08/2006, 14:37
 
Fecha de Ingreso: agosto-2006
Mensajes: 121
Antigüedad: 17 años, 8 meses
Puntos: 0
No te compliques la vida. Aquí tienes las funciones que yo uso para estos menesteres:

Código PHP:
<?php

function compara_fechas($fecha1,$fecha2) {
// Devuelve > 0 si fecha1 > fecha2; menor < 0 alrevés o cero si so iguales . Funciona tanto en formato dd-mm-aa como dd/mm/aaaa
      
if (preg_match("/[0-9]{1,2}\/[0-9]{1,2}\/([0-9][0-9]){1,2}/",$fecha1))
              list(
$dia1,$mes1,$año1)=split("/",$fecha1);
      if (
preg_match("/[0-9]{1,2}-[0-9]{1,2}-([0-9][0-9]){1,2}/",$fecha1))
              list(
$dia1,$mes1,$año1)=split("-",$fecha1);
      if (
preg_match("/[0-9]{1,2}\/[0-9]{1,2}\/([0-9][0-9]){1,2}/",$fecha2))
              list(
$dia2,$mes2,$año2)=split("/",$fecha2);
      if (
preg_match("/[0-9]{1,2}-[0-9]{1,2}-([0-9][0-9]){1,2}/",$fecha2))
              list(
$dia2,$mes2,$año2)=split("-",$fecha2);
        
$dif mktime(0,0,0,$mes1,$dia1,$año1) - mktime(0,0,0$mes2,$dia2,$año2);
        return (
$dif);                         
}      

function 
suma_fechas($fecha,$ndias)
// Ejemplo: Si $fecha=10/11/2005 y $ndias=21 entonces devuelve 01/12/2005
{
  if (
preg_match("/[0-9]{1,2}\/[0-9]{1,2}\/([0-9][0-9]){1,2}/",$fecha))
          list(
$dia,$mes,$año)=split("/"$fecha);

  if (
preg_match("/[0-9]{1,2}-[0-9]{1,2}-([0-9][0-9]){1,2}/",$fecha))
          list(
$dia,$mes,$año)=split("-",$fecha);
    
$nueva mktime(0,0,0$mes,$dia,$año) + $ndias 24 60 60;
    
$nuevafecha=date("d-m-Y",$nueva);
  return (
$nuevafecha);

}


function 
resta_fechas($fecha1,$fecha2)
// Ejemplo: Si $fecha1=10/11/2006 y $fecha2=10/11/2005 entonces devuelve 365
{
  if (
preg_match("/[0-9]{1,2}\/[0-9]{1,2}\/([0-9][0-9]){1,2}/",$fecha1))
          list(
$dia1,$mes1,$año1)=split("/",$fecha1);

  if (
preg_match("/[0-9]{1,2}-[0-9]{1,2}-([0-9][0-9]){1,2}/",$fecha1))
          list(
$dia1,$mes1,$año1)=split("-",$fecha1);
    if (
preg_match("/[0-9]{1,2}\/[0-9]{1,2}\/([0-9][0-9]){1,2}/",$fecha2))
          list(
$dia2,$mes2,$año2)=split("/",$fecha2);
        
  if (
preg_match("/[0-9]{1,2}-[0-9]{1,2}-([0-9][0-9]){1,2}/",$fecha2))
          list(
$dia2,$mes2,$año2)=split("-",$fecha2);
    
$dif mktime(0,0,0,$mes1,$dia1,$año1) - mktime(0,0,0,$mes2,$dia2,$año2);

  
$ndias=floor($dif/(24*60*60));
  return(
$ndias);

}

?>
Saludos
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 22:27.