Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   Problemas con Date y String (https://www.clubdelphi.com/foros/showthread.php?t=72913)

Pancholp1986 18-03-2011 18:08:14

Problemas con Date y String
 
Buenas tardes,
bien tengo el siguiente problema, tengo que calcular la diferencia en dias entre dos fechas. El problema en sí es que una fecha la tengo en formato Date y la otra en String.
Lo que pense que es más cómodo es pasar la que es Date a String y después hacerlo, pero se me complica mucho. Entonses pensé en pasar el String a Date pero no encuentro una manera clara de hacerlo.
Alguna idea o ayuda??? Gracias ...

$enDate = "2010-02-13";
$enString = '170210'; // dd/mm/aa

Neftali [Germán.Estévez] 18-03-2011 18:46:55

Cita:

Empezado por Pancholp1986 (Mensaje 394039)
...tengo que calcular la diferencia en dias entre dos fechas. El problema en sí es que una fecha la tengo en formato Date y la otra en String.

...
$enDate = "2010-02-13";
$enString = '170210'; // dd/mm/aa

Para eso Delphi posee la función DaysBetween (docuentacion) que te da la diferencia en días entre 2 fechas.


Cita:

Empezado por Pancholp1986 (Mensaje 394039)
...Lo que pense que es más cómodo es pasar la que es Date a String y después hacerlo

No hombre, al contrario; Pasa la de String a Fecha y luego ejecutas la función anterior para calcular la diferencia.

1) Corta la cadena en 3 trozos con la función Copy (documentacion).
2) Crea la fecha utilizando los 3 numeros y la función EncodeDate (documentacion).
3) Aplica la funcion DaysBetween.

roman 18-03-2011 18:52:25

php :rolleyes:

// Saludos

Neftali [Germán.Estévez] 18-03-2011 18:54:41

Cita:

Empezado por roman (Mensaje 394046)
php :rolleyes:

:o:o:o

Si es que uno a estas horas ya va a piñon...

Mil discupas.

Ahora mismo apago el orenador y me voy para casa porque estoy "que no doy pie con bola..." :(

roman 18-03-2011 19:22:23

Cita:

Empezado por Pancholp1986 (Mensaje 394039)
tengo que calcular la diferencia en dias entre dos fechas.

[...]

$enDate = "2010-02-13";
$enString = '170210'; // dd/mm/aa

Con PHP 5.3:

Código PHP:

<?php
$fecha1 
DateTime::createFromFormat('Y-m-d''2010-02-13');
$fecha2 DateTime::createFromFormat('dmy''170210');

$intervalo $fecha1->diff($fecha2);

echo 
'Días entre las dos fechas: ' $intervalo->d;
?>

// Saludos

Pancholp1986 18-03-2011 19:27:13

Bueno, fuera de joda estube horas buscando y no encontré nada. Acabo de encontrar una posible solución que me resolvió mi problema.
El String lo convierto a Date:
$d = substr($stringFecha,0,2);
$m = substr($stringFecha,2,2);
$a = substr($stringFecha,4,2);
$a = "20".$a;
$aux = mktime(0,0,0,$m,$d,$a);
$aux = date ("Y-m-d", $aux);
Y luego resto las dos fechas para sacar la diferencia en días e/ ambas:
$j = new DateTime($dateFecha); // ¿?, rarísimo, pero lo tuve que hacer
$aux1 = date_timestamp_get($j);
$dif_seg = $aux1 - $aux ;
$dif = $dif_seg/(60*60*24);

"vualaaaaaaaaaaaa" :P.
Espero que le sirva a alguien en un futuro.
Saludos

Pancholp1986 18-03-2011 19:34:09

Cita:

Empezado por roman (Mensaje 394053)
Con PHP 5.3:

Código PHP:

<?php
$fecha1 
DateTime::createFromFormat('Y-m-d''2010-02-13');
$fecha2 DateTime::createFromFormat('dmy''170210');

$intervalo $fecha1->diff($fecha2);

echo 
'Días entre las dos fechas: ' $intervalo->d;
?>

// Saludos

Román te agradesco muchísimo. Tu respuesta parece mucho más confiable que la que fuí armando yo. Voy a probar de la manera en que me lo explicas vos.
Saludos!


La franja horaria es GMT +2. Ahora son las 11:20:01.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi