Foros del Web » Programando para Internet » PHP »

Calculo de dias entre dos fechas, cual es el error?

Estas en el tema de Calculo de dias entre dos fechas, cual es el error? en el foro de PHP en Foros del Web. Buenas Necesito calcular el dia entre dos fechas, las cuales me llegan por un array en este formato: AÑO-DIA-MES Lo que hago para extrarlo es ...
  #1 (permalink)  
Antiguo 02/08/2010, 17:53
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 8 meses
Puntos: 3
Calculo de dias entre dos fechas, cual es el error?

Buenas

Necesito calcular el dia entre dos fechas, las cuales me llegan por un array en este formato:

AÑO-DIA-MES

Lo que hago para extrarlo es lo siguiente:

Código PHP:

<?php
$fecha
-inicio $data->node_data_field_fecha_inicio_field_fecha_inicio_value;
$fecha-dias-inicio explode("-"$fecha-inicio);//si fecha esta en formato dia-mes-año 
$dia-inicio $fecha-dias-inicio[0]; 
$mes-inicio $fecha-dias-inicio[1]; 
$anual-inicio $fecha-dias-inicio[2];
/************* COMIENZO CALCULO FECHA FINAL *************/
$fecha-fin $data->node_data_field_fecha_inicio_field_fecha_fin_value;
$fecha-dias-fin explode("-"$fecha-fin);//si fecha esta en formato dia-mes-año 
$dia-fin $fecha-dias-fin[0]; 
$mes-fin $fecha-dias-inicio[1]; 
$anual-fin $fecha-dias-inicio[2];
$age = ((int)((mktime (0,0,0,$mes-inicio,$dia-inicio,$anual-inicio) - (mktime (0,0,0,$mes-fin,$dia-fin,$anual-fin));
print (
"Días " $age ".");
?>
Son dos valores que me llegan desde la variable $data

node_data_field_fecha_inicio_field_fecha_inicio_va lue: Contiene fecha inicio
node_data_field_fecha_inicio_field_fecha_fin_value : Contiene fecha fin

Todo funciona bien, logro separar correctamente con el explode cada parte de la fecha, pero me da este error:

Parse error: syntax error, unexpected '=' in /public_html/pro*** code on line 2

No se bien que igual esta de mas o si es otro el problema o esta mal hecha la resta...
  #2 (permalink)  
Antiguo 02/08/2010, 18:14
Avatar de elbuensaint  
Fecha de Ingreso: marzo-2009
Ubicación: Chiwas
Mensajes: 178
Antigüedad: 15 años, 1 mes
Puntos: 7
Respuesta: Calculo de dias entre dos fechas, cual es el error?

no puedes usar guiones (-) en el nombre de una variable, tienen que ser subrayados (_), prueba cambiando todos esos guiones por subrayados, haber si asi funciona ;)

Cita:
Un nombre de variable válido empieza con una letra o el carácter de subrayado, seguido por una serie letras, números, o subrayados. Los nombres de variables en PHP no admiten espacios en blanco, signos de puntuación (acentos, ¡!, ¿?, etc), ni caracteres especiales(%, ñ, etc)
  #3 (permalink)  
Antiguo 02/08/2010, 18:16
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Calculo de dias entre dos fechas, cual es el error?

En todos las variables lo que estás haciendo es restando, porque estás usando guiones.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #4 (permalink)  
Antiguo 02/08/2010, 18:18
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 8 meses
Puntos: 3
Respuesta: Calculo de dias entre dos fechas, cual es el error?

Veo, corregi el error y ahora me aparece esto:

Parse error: syntax error, unexpected ';' in line 13

que es esta:

$age = ((int)((mktime (0,0,0,$mes_inicio,$dia_inicio,$anual_inicio) - (mktime (0,0,0,$mes_fin,$dia_fin,$anual_fin));

Es correcto el uso?
  #5 (permalink)  
Antiguo 02/08/2010, 18:22
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Calculo de dias entre dos fechas, cual es el error?

Verifica que hayas abierto y cerrado todos los paréntesis y verifica la línea anterior, tal vez no usas el punto y coma.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 02/08/2010, 18:26
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 8 meses
Puntos: 3
Respuesta: Calculo de dias entre dos fechas, cual es el error?

mmm todo parece estar ok....

Código PHP:
$age = ((int)((mktime (0,0,0,$mes_inicio,$dia_inicio,$anual_inicio) - (mktime (0,0,0,$mes_fin,$dia_fin,$anual_fin)); 
  #7 (permalink)  
Antiguo 02/08/2010, 18:28
Avatar de elbuensaint  
Fecha de Ingreso: marzo-2009
Ubicación: Chiwas
Mensajes: 178
Antigüedad: 15 años, 1 mes
Puntos: 7
Respuesta: Calculo de dias entre dos fechas, cual es el error?

se ven dos parentesis sin cerrar, o sera que te sobran algunos que abriste
  #8 (permalink)  
Antiguo 02/08/2010, 18:28
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Calculo de dias entre dos fechas, cual es el error?

Como te indiqué verifica la línea anterior, lo más seguro que no terminaste la sentencia usando el punto y coma.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #9 (permalink)  
Antiguo 02/08/2010, 18:33
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 8 meses
Puntos: 3
Respuesta: Calculo de dias entre dos fechas, cual es el error?

Si, ahora ya no da error pero me da siempre cero como resultado .... esta bien como ha quedado?

Código PHP:
<?php
$fecha_inicio 
$data->node_data_field_fecha_inicio_field_fecha_inicio_value;
$fecha_dias_inicio explode("-"$fecha_inicio);//si fecha esta en formato dia_mes_año 
$dia_inicio $fecha_dias_inicio[0]; 
$mes_inicio $fecha_dias_inicio[1]; 
$anual_inicio $fecha_dias_inicio[2];
/************* COMIENZO CALCULO FECHA FINAL *************/
$fecha_fin $data->node_data_field_fecha_inicio_field_fecha_fin_value;
$fecha_dias_fin explode("-"$fecha_fin);//si fecha esta en formato dia_mes_año 
$dia_fin $fecha_dias_fin[0]; 
$mes_fin $fecha_dias_inicio[1]; 
$anual_fin $fecha_dias_inicio[2];
$age = ((int)(mktime (0,0,0,$mes_inicio,$dia_inicio,$anual_inicio)) - (mktime (0,0,0,$mes_fin,$dia_fin,$anual_fin)));
print 
$age;
?>
Me da este error:
warning: mktime() expects parameter 5 to be long, string given on line 13

cada variable me trae correctamente los datos....

es decir $dia_fin por ejemplo me trae el dia y asi...
  #10 (permalink)  
Antiguo 02/08/2010, 18:43
Avatar de elbuensaint  
Fecha de Ingreso: marzo-2009
Ubicación: Chiwas
Mensajes: 178
Antigüedad: 15 años, 1 mes
Puntos: 7
Respuesta: Calculo de dias entre dos fechas, cual es el error?

y si lo pones de esta manera te sigue dando error?

Código PHP:
$age = ((int)((mktime (0,0,0,$mes_inicio,$dia_inicio,$anual_inicio)) - (mktime (0,0,0,$mes_fin,$dia_fin,$anual_fin))); 
me dices si te funciona o no
  #11 (permalink)  
Antiguo 02/08/2010, 18:46
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 8 meses
Puntos: 3
Respuesta: Calculo de dias entre dos fechas, cual es el error?

me sigue dando este error ahora...

Parse error: syntax error, unexpected ';'

todo parece estar correcto...las variables por si misma muestran los datos como deben ser...
  #12 (permalink)  
Antiguo 02/08/2010, 18:48
Avatar de elbuensaint  
Fecha de Ingreso: marzo-2009
Ubicación: Chiwas
Mensajes: 178
Antigüedad: 15 años, 1 mes
Puntos: 7
Respuesta: Calculo de dias entre dos fechas, cual es el error?

entonces al parecer como lo tenias tu era la manera correcta... mmm creo que hasta ahi te puedo ayudar yo, tal vez alguien que sepa mas como manejar la funcion mktime te pueda ayudar
  #13 (permalink)  
Antiguo 02/08/2010, 18:49
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 8 meses
Puntos: 3
Respuesta: Calculo de dias entre dos fechas, cual es el error?

imagino que debe estar faltando algun parametro....
  #14 (permalink)  
Antiguo 02/08/2010, 19:57
Avatar de De_la_Cuesta_13  
Fecha de Ingreso: abril-2009
Ubicación: Cali, Colombia.
Mensajes: 265
Antigüedad: 15 años
Puntos: 14
Respuesta: Calculo de dias entre dos fechas, cual es el error?

Link.
__________________
Sólo quien nunca nada hace, nunca se equivoca.

Etiquetas: calculo, dias, dos, fechas
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 00:15.