Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-03-2011
Pancholp1986 Pancholp1986 is offline
Miembro
 
Registrado: jul 2010
Posts: 42
Poder: 0
Pancholp1986 Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 18-03-2011
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.281
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Pancholp1986 Ver Mensaje
...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 Ver Mensaje
...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.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 18-03-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
php

// Saludos
Responder Con Cita
  #4  
Antiguo 18-03-2011
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.281
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por roman Ver Mensaje
php


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..."
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 18-03-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Pancholp1986 Ver Mensaje
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
Responder Con Cita
  #6  
Antiguo 18-03-2011
Pancholp1986 Pancholp1986 is offline
Miembro
 
Registrado: jul 2010
Posts: 42
Poder: 0
Pancholp1986 Va por buen camino
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
Responder Con Cita
  #7  
Antiguo 18-03-2011
Pancholp1986 Pancholp1986 is offline
Miembro
 
Registrado: jul 2010
Posts: 42
Poder: 0
Pancholp1986 Va por buen camino
Cita:
Empezado por roman Ver Mensaje
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!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problemas con Firebird y Date Paulao Varios 8 20-05-2010 17:08:38
convertir un date a string airam C++ Builder 2 25-07-2008 18:58:00
coversion de string a date dentro de un select gmontes SQL 3 03-05-2005 18:36:06
De string mm/dd/yyyy a Date CHiCoLiTa Varios 1 29-07-2004 17:26:26
pasar un string date a un campo datetime de una tabla Giniromero Conexión con bases de datos 8 12-02-2004 14:58:10


La franja horaria es GMT +2. Ahora son las 07:50:47.


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
Copyright 1996-2007 Club Delphi