Ver la Versión Completa : Problemas con Date y String
Pancholp1986
18-03-2011, 18:08:14
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
...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 (http://docwiki.embarcadero.com/VCL/en/DateUtils.DaysBetween)) que te da la diferencia en días entre 2 fechas.
...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 (http://docwiki.embarcadero.com/VCL/en/System.Copy)).
2) Crea la fecha utilizando los 3 numeros y la función EncodeDate (documentacion (http://docwiki.embarcadero.com/VCL/en/SysUtils.EncodeDate)).
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
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
tengo que calcular la diferencia en dias entre dos fechas.
[...]
$enDate = "2010-02-13";
$enString = '170210'; // dd/mm/aa
Con PHP 5.3:
<?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
Con PHP 5.3:
<?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!
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.