Foros del Web » Programando para Internet » PHP »

Funciones de fecha.

Estas en el tema de Funciones de fecha. en el foro de PHP en Foros del Web. Hola, acabo de terminar este srcipt, sirve para contar los días que pasarón desde una fecha. Pero no me funciona : Código PHP: <?php $creacion  ...
  #1 (permalink)  
Antiguo 07/05/2003, 08:01
Avatar de Pino  
Fecha de Ingreso: abril-2003
Ubicación: Cangas do Morrazo, Pontevedra, Galicia, España, Europa, etc
Mensajes: 490
Antigüedad: 21 años
Puntos: 0
Funciones de fecha.

Hola, acabo de terminar este srcipt, sirve para contar los días que pasarón desde una fecha. Pero no me funciona :

Código PHP:
<?php
$creacion 
date("15/October/2002");
$hoy date("d/F/Y");
$resta $creacion $hoy;
$total date(d/F/Y,$resta);
echo 
"$total días on-line";
?>
El script me devuelve: días on-line, pero sin ningun número.
Un saludo
__________________
Pïno
Webmaster de Programas Lynx
Usuario Registrado de Linux #327681

Mi cuerpo en windows, pero mi mente pensando en linux.
  #2 (permalink)  
Antiguo 07/05/2003, 08:08
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 3 meses
Puntos: 17
date("15/October/2002"); no es PHP válido.

Para crear una fecha, usa mktime(). Luego, puedes usar date() para darle el formato que quieras.
__________________
M a l d i t o F r i k i
  #3 (permalink)  
Antiguo 07/05/2003, 08:42
Avatar de Pino  
Fecha de Ingreso: abril-2003
Ubicación: Cangas do Morrazo, Pontevedra, Galicia, España, Europa, etc
Mensajes: 490
Antigüedad: 21 años
Puntos: 0
Hola de nuevo me sigue sin aparecer nada.
Lo hice así:
Código PHP:
<?php
$creacion 
date("d/F/Y"mktime(0,0,0,10,15,2002));
$hoy date("d/F/Y");
$resta $creacion $hoy;
$total date(d/F/Y,$resta);
echo 
"$total días on-line";
?>
__________________
Pïno
Webmaster de Programas Lynx
Usuario Registrado de Linux #327681

Mi cuerpo en windows, pero mi mente pensando en linux.
  #4 (permalink)  
Antiguo 07/05/2003, 11:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pino ...

usa mktime() para generar la fecha que tienes en formato TIMESTAMP ..

La fecha/hora actual la obtienes con time() ..

Haces la resta y le das formato al total con

date ("tu formato",el restultado de tu resta de fechas)

Un saludo,

pd: .. Si trabajas con fechas en una BD .. te recomiendo que veas las funciones própias de tu BD que uses para trabajar con fechas.
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 07/05/2003, 11:54
Avatar de Pino  
Fecha de Ingreso: abril-2003
Ubicación: Cangas do Morrazo, Pontevedra, Galicia, España, Europa, etc
Mensajes: 490
Antigüedad: 21 años
Puntos: 0
Gracias, voy a probar, no utilizo BD
Un saludo

Nada sigue sin irme se ve que soy un negao, hice esto:
Código PHP:
<?php
$creacion 
date("j/n/Y"mktime(0,0,0,10,15,2002));
$hoy time();
$resta $creacion $hoy;
$total date(j/n/Y$resta);
echo 
"$total días on-line";
?>
Un saludo espero q me digais que hice mal de nuevo.
__________________
Pïno
Webmaster de Programas Lynx
Usuario Registrado de Linux #327681

Mi cuerpo en windows, pero mi mente pensando en linux.
  #6 (permalink)  
Antiguo 07/05/2003, 11:57
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 3 meses
Puntos: 17
Prueba esto:
Código PHP:
<?php
$creacion 
mktime(0,0,0,10,15,2002);
$hoy time();
$resta $creacion $hoy;
$total date(j/n/Y$resta);
echo 
"$total días on-line";
?>
Antes estabas restando fechas en formatos distintos.
__________________
M a l d i t o F r i k i
  #7 (permalink)  
Antiguo 07/05/2003, 12:08
Avatar de Pino  
Fecha de Ingreso: abril-2003
Ubicación: Cangas do Morrazo, Pontevedra, Galicia, España, Europa, etc
Mensajes: 490
Antigüedad: 21 años
Puntos: 0
No así tampoco va, no se por que será, aparte no da ningun tipo de error, lo unico que hace es mostrarme: días on-line y nada más.
Un saludo
__________________
Pïno
Webmaster de Programas Lynx
Usuario Registrado de Linux #327681

Mi cuerpo en windows, pero mi mente pensando en linux.
  #8 (permalink)  
Antiguo 07/05/2003, 12:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cain .. jeje .. te faltó las comillas en el formato del date() ..

Código PHP:
$total date("j/n/Y"$resta); 
El problemilla está en la resta .. sería

Código PHP:
$resta $hoy $creacion 
Tienedo en cuenta que $creacion sea anterior a $hoy ...

Ademas .. Pino .. si no ves los errores .. sería bueno que usases (por lo menos en fase de desarrollo):

Código PHP:
error_reporting(E_ALL); 
eso al principio de tus scritps .. ahí el date() tal cual estaba PHP da un error tipo:

Cita:
Warning: date() [function.date]: Unexpected error in ....
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 07/05/2003, 14:02
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 3 meses
Puntos: 17
error_reporting(E_ALL);

¡Eso no lo sabía yo! Buena cosa he aprendido
__________________
M a l d i t o F r i k i
  #10 (permalink)  
Antiguo 07/05/2003, 14:12
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
jejej Cain .. pues por mi parte llevo ya tiempo "evangelizando" en el uso de esa función .. Sobre todo a los que usan servidores gratuitos como Lycos que tiene el reporte de errores a OFF y se queda uno 0_o cuando vé una bonita página en blanco y el scritp php sin funcionar ...

(josemi en su firma tiene el link hacia un artículo suyo que explica tambien las virtudes de usar esa función para detectar errores de PHP ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 07/05/2003 a las 14:14
  #11 (permalink)  
Antiguo 08/05/2003, 11:15
Avatar de Pino  
Fecha de Ingreso: abril-2003
Ubicación: Cangas do Morrazo, Pontevedra, Galicia, España, Europa, etc
Mensajes: 490
Antigüedad: 21 años
Puntos: 0
Cita:
error_reporting(E_ALL);

¡Eso no lo sabía yo! Buena cosa he aprendido
Gracias cluster yo tampoco lo sabía, lo había visto escrito en varios script pero no pense que fuera para eso.

Siguiendo con mi script, sigo sin tenerlo como quiero, quiero que me aparezcan los días desde que la cree, pero el script me da una fecha, por eso puse esto pero...

Código PHP:
$total date("d"$resta); 
Pero me da 24 días y como comprendereís desde el 15 de octubre del 2002 al día de hoy no hay 24 días, yo se por que me apareze 24 días, pero no se como hazer para que me aparezcan los días que pasarón desde el 15 de octubre del 2002.

Un saludo
__________________
Pïno
Webmaster de Programas Lynx
Usuario Registrado de Linux #327681

Mi cuerpo en windows, pero mi mente pensando en linux.
  #12 (permalink)  
Antiguo 08/05/2003, 16:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
mm si, tienes razón ..

Entonces te vas a tener que quedar con con la $resta .. esa resta son "segundos" .. así que divide y venceras xDD

A ver si me aclaro yo mismo xD

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 08/05/2003 a las 16:52
  #13 (permalink)  
Antiguo 09/05/2003, 09:13
Avatar de Pino  
Fecha de Ingreso: abril-2003
Ubicación: Cangas do Morrazo, Pontevedra, Galicia, España, Europa, etc
Mensajes: 490
Antigüedad: 21 años
Puntos: 0
Gracias, voy a probar, a ver si de esta va la vencida.
Saludos
__________________
Pïno
Webmaster de Programas Lynx
Usuario Registrado de Linux #327681

Mi cuerpo en windows, pero mi mente pensando en linux.
  #14 (permalink)  
Antiguo 09/05/2003, 11:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Bueno .. sabiendo que un dia tiene 86400 segundo .. una resta y listo:

$dias_diferencia=$resta/86400;

En caso de que dé menos de 1 dia .. o con resto (x dias y horas ..) pues ahí ya te las apañas con las reglas de tres xDD.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #15 (permalink)  
Antiguo 09/05/2003, 13:00
Avatar de Pino  
Fecha de Ingreso: abril-2003
Ubicación: Cangas do Morrazo, Pontevedra, Galicia, España, Europa, etc
Mensajes: 490
Antigüedad: 21 años
Puntos: 0
Hola, ya esta, funciona a la perfección , quedo así:

Código PHP:
<?php
$creacion 
mktime(0,0,0,10,15,2002);
$hoy time();
$resta $hoy $creacion;
$total round($resta/86400);
echo 
"$total días on-line";
?>
Gracias cluster y cain por haberme ayudado, la verdad es que el script que hice yo al principio era una mierda. Una pregunta tuve que utilizar la función round, no la entiendo muy bien que redondea un número que sea decimal por ej.: 345,54544554 con el round sería: 345. ¿Es así?

Un saludo y gracias por todo.
__________________
Pïno
Webmaster de Programas Lynx
Usuario Registrado de Linux #327681

Mi cuerpo en windows, pero mi mente pensando en linux.
  #16 (permalink)  
Antiguo 09/05/2003, 13:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Bueno .. tienes round() que hace eso .. redondea .. y ceil() y floor() para redondear hacia arriba o abajao .. ademas si sólo quieres "despreciar" los decimales tienes number_format() ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #17 (permalink)  
Antiguo 10/05/2003, 03:58
Avatar de Pino  
Fecha de Ingreso: abril-2003
Ubicación: Cangas do Morrazo, Pontevedra, Galicia, España, Europa, etc
Mensajes: 490
Antigüedad: 21 años
Puntos: 0
Bueno gracias de nuevo, en este post aprendi muchas cosas
un saludo
__________________
Pïno
Webmaster de Programas Lynx
Usuario Registrado de Linux #327681

Mi cuerpo en windows, pero mi mente pensando en linux.
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 08:52.