• Viernes 1 de Noviembre de 2024, 19:21

Autor Tema:  Convertir un mktime (PHP) a DateTime (c#) o al revés  (Leído 3348 veces)

nax

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Convertir un mktime (PHP) a DateTime (c#) o al revés
« en: Viernes 7 de Enero de 2011, 17:36 »
0
Bueno, una vez más me tienen por aca preguntando...

resulta que estoy capturando algunas cosas de la api de rapidshare...

Y me interesa conseguir un campo que indica la fecha de expiración, el caso es que quiero comparar ese campo con la fecha actual para ver si expiró...

Al venir desde una petición GET el campo es un String y no tiene formato de fecha, ya que mktime crea un número desde el 1/1/1970 hasta hoy o hasta la fecha que se le indique...

la cuestión es que me ha sido imposible pasar ese número a un DateTime o pasar el DateTime a un número similar y compararlos....  :no:

alguna idea sobre el caso?

saludos  :hola:
nax

gabio2

  • Miembro MUY activo
  • ***
  • Mensajes: 402
  • Nacionalidad: mx
    • Ver Perfil
Re: Convertir un mktime (PHP) a DateTime (c#) o al revés
« Respuesta #1 en: Viernes 7 de Enero de 2011, 20:25 »
0
"Al venir desde una petición GET el campo es un String y no tiene formato de fecha, ya que mktime crea un número desde el 1/1/1970 hasta hoy o hasta la fecha que se le indique..."

no entendí esa parte, si podrias poner un ejemplo de lo que te regresa.. es decir.. el campo que te devuelve el GET.. como es?.. con un ejemplo me aclararias mi duda, para saber como manejarlo.. :).. saludos..
@gabio87

nax

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Re: Convertir un mktime (PHP) a DateTime (c#) o al revés
« Respuesta #2 en: Viernes 7 de Enero de 2011, 20:38 »
0
el mktime te da algo como: 123455333 por decir algo....

y eso no me lo permite pasar a DateTime

LapizTolita

  • Miembro activo
  • **
  • Mensajes: 27
    • Ver Perfil
Re: Convertir un mktime (PHP) a DateTime (c#) o al revés
« Respuesta #3 en: Sábado 8 de Enero de 2011, 03:07 »
0
Tenes que saber el date_default_timezone_set() que tiene la pagina y calcular sabiendo que el tiempo unix se define como la cantidad de segundos transcurridos desde la medianoche UTC del 1 de enero de 1970.
Si tenes flojera de codificar :
Código: C#
  1. static DateTime DesdeUnixTime(double tiempo)
  2. {
  3.     DateTime origen = new DateTime(1970, 1, 1, 0, 0, 0, 0);
  4.     return origen.AddSeconds(tiempo);
  5. }
  6.  
  7.  
  8. static double aUnixTime(DateTime fecha)
  9. {
  10.     DateTime origen = new DateTime(1970, 1, 1, 0, 0, 0, 0);
  11.     TimeSpan diferencia = fecha- origen;
  12.     return Math.Floor(diferencia.TotalSeconds);
  13. }
  14.  
Con esto tenes que definir el horario local como el de la pagina antes de invocar las funciones.

nax

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Re: Convertir un mktime (PHP) a DateTime (c#) o al revés
« Respuesta #4 en: Miércoles 12 de Enero de 2011, 01:15 »
0
lo probaré en cuanto pueda...

supongo que tiempo sería los segundos que me da la pagina no?

básicamente es crear un datetime de 1/1/1970 y sumarle los segundos que me de la web no?

si es eso.. puede que funcione  :good:

nax

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Re: Convertir un mktime (PHP) a DateTime (c#) o al revés
« Respuesta #5 en: Viernes 14 de Enero de 2011, 21:47 »
0
hola otra vez.

lo he probado así:
Código: C#
  1.             DateTime origen = new DateTime(1970, 1, 1, 0, 0, 0, 0);
  2.             double seconds = 20;
  3.             origen.AddSeconds(seconds);
  4.             MessageBox.Show(origen.ToString("dd/MM/yyyy HH:mm:ss"));
  5.  

y así:



Código: C#
  1.     DateTime origen = new DateTime(1970, 1, 1, 0, 0, 0, 0);
  2.             origen.AddSeconds(1296585662);
  3.             MessageBox.Show(origen.ToString("dd/MM/yyyy HH:mm:ss"));
  4.  

y no funciona... se queda en 1/1/1970 00;00;00

LapizTolita

  • Miembro activo
  • **
  • Mensajes: 27
    • Ver Perfil
Re: Convertir un mktime (PHP) a DateTime (c#) o al revés
« Respuesta #6 en: Sábado 15 de Enero de 2011, 02:35 »
0
origen=origen.AddSeconds(1296585662);

nax

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Re: Convertir un mktime (PHP) a DateTime (c#) o al revés
« Respuesta #7 en: Sábado 15 de Enero de 2011, 03:05 »
0
no voy a hacer comentarios sobre lo penoso que ha sido esto  :brickwall:

el cerebro me la ha jugado...

thanks