elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  campo date debuelve 1970-01-01
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: campo date debuelve 1970-01-01  (Leído 5,386 veces)
Ethgar

Desconectado Desconectado

Mensajes: 56



Ver Perfil
campo date debuelve 1970-01-01
« en: 8 Julio 2014, 15:59 pm »

Que tal buen día pues me surgio un problema que no he logrado entender porque un campo date que su value es una fecha que toma de una base de datos me devuelve 1970-01-01, se que esta fecha esta por default cuando se da un valor null a un tipo date pero se supone que no es un valor null o 0 porque esta tomando un valor registrado en una base de datos, lo raro es que este error lo hace cuando bloqueo el input, cuando esta habilitado no me da problemas, pongo el fragmento de código correspondiente:

Código:
[code]
$query = mysql_query("SELECT * FROM Tabla_Fecha");
while ($row = mysql_fetch_array($query)){
$Fecha_Orden =  $row['Fecha_Orden'];
}

<td><input class="input"  type="text" name="FechaOrden" id="FechaOrden" size="12" title="Día de Registro" placeholder="2013/06/15" value="<?php echo $Fecha_Orden;?>" disabled required/>

$FechaOrden = strtoupper($_POST['FechaOrden']);
$FechaOrden=date('Y-m-d',strtotime($FechaOrden));

$Modificar = "UPDATE Tabla_Fecha
  SET Fecha_Orden='$FechaOrden'";
  $Mod= mysql_query($Modificar);
  if( $Mod == false ) echo"<script> alert('Error al Modificar Fecha')</script>"; 
  else echo"<script>alert('La Fecha ha sido Modificada)</script>";
[/code]


En línea

MinusFour
Moderador Global
***
Conectado Conectado

Mensajes: 4.952


I'm fourth.


Ver Perfil WWW
Re: campo date debuelve 1970-01-01
« Respuesta #1 en: 8 Julio 2014, 18:58 pm »

Revisa en tu base de datos desde PHPmyAdmin o algun otro cliente SQL que valor tienes en la tabla. Yo lo que estoy viendo es que simplemente te traes el campo y lo imprimes pero también creo que cortaste algo de tú código porque empiezas a escribir HTML sin haber cerrado la tag de PHP y vice versa y si es así no sabemos si hayas modificado la variable antes de imprimirla.

Otra cosa, revisa que tu strtotime este bién y no te devuelva FALSE:

Código
  1. $FechaOrden=date('Y-m-d',strtotime($FechaOrden));

Si no te reconoce el string de la fecha
Código
  1. strtoupper($_POST['FechaOrden']);

Entonces te va a mandar un FALSE (0), lo que equivale a un timestamp de 1970-01-01.


En línea

Ethgar

Desconectado Desconectado

Mensajes: 56



Ver Perfil
Re: campo date debuelve 1970-01-01
« Respuesta #2 en: 8 Julio 2014, 19:14 pm »

Revisa en tu base de datos desde PHPmyAdmin o algun otro cliente SQL que valor tienes en la tabla. Yo lo que estoy viendo es que simplemente te traes el campo y lo imprimes pero también creo que cortaste algo de tú código porque empiezas a escribir HTML sin haber cerrado la tag de PHP y vice versa y si es así no sabemos si hayas modificado la variable antes de imprimirla.

Otra cosa, revisa que tu strtotime este bién y no te devuelva FALSE:

Código
  1. $FechaOrden=date('Y-m-d',strtotime($FechaOrden));

Si no te reconoce el string de la fecha
Código
  1. strtoupper($_POST['FechaOrden']);

Entonces te va a mandar un FALSE (0), lo que equivale a un timestamp de 1970-01-01.

Si lo que pasa es que solo extraje el código en cuestión, la variable no s emodifica, lo que estoy pensando con tu respuesta es que al hacer strotimr a una fecha ya almacenada como date pueda dar algún problema
En línea

MinusFour
Moderador Global
***
Conectado Conectado

Mensajes: 4.952


I'm fourth.


Ver Perfil WWW
Re: campo date debuelve 1970-01-01
« Respuesta #3 en: 8 Julio 2014, 19:25 pm »

¿Cual es tú string que pasas como $_POST["FechaOrden"]?

Dame un ejemplo para ver si está correcto.
En línea

Ethgar

Desconectado Desconectado

Mensajes: 56



Ver Perfil
Re: campo date debuelve 1970-01-01
« Respuesta #4 en: 10 Julio 2014, 17:17 pm »

¿Cual es tú string que pasas como $_POST["FechaOrden"]?

Dame un ejemplo para ver si está correcto.
$FechaOrden = strtoupper($_POST['FechaOrden']);
$FechaOrden=date('Y-m-d',strtotime($FechaOrden))

$FechaOrden es la variable string quepaso como post y  que almaceno
En línea

MinusFour
Moderador Global
***
Conectado Conectado

Mensajes: 4.952


I'm fourth.


Ver Perfil WWW
Re: campo date debuelve 1970-01-01
« Respuesta #5 en: 10 Julio 2014, 17:20 pm »

Lo que estaba buscando un ejemplo de lo que pasas como POST..

Por ejemplo: "Junio 2014"
En línea

Ethgar

Desconectado Desconectado

Mensajes: 56



Ver Perfil
Re: campo date debuelve 1970-01-01
« Respuesta #6 en: 10 Julio 2014, 17:58 pm »

Lo que estaba buscando un ejemplo de lo que pasas como POST..

Por ejemplo: "Junio 2014"
a ok ok , bueno , lo que pasa es por ejemplo: 2014-06-01
En línea

MinusFour
Moderador Global
***
Conectado Conectado

Mensajes: 4.952


I'm fourth.


Ver Perfil WWW
Re: campo date debuelve 1970-01-01
« Respuesta #7 en: 10 Julio 2014, 18:02 pm »

¿Entonces para que usas strtoupper, si lo que hace esto es poner tu string en mayúsculas?
En línea

Ethgar

Desconectado Desconectado

Mensajes: 56



Ver Perfil
Re: campo date debuelve 1970-01-01
« Respuesta #8 en: 10 Julio 2014, 18:06 pm »

¿Entonces para que usas strtoupper, si lo que hace esto es poner tu string en mayúsculas?
Ahora que lo mencionas, de hecho lo usaba porque en un principio el usuario podía manipular la fecha, pero surgió el problema de que ponían fechas que no correspondían al mes en que estaban, por lo tanto lo deshabilite, Muchas graciasMinusFour, es algo sencillo que pase por alto, pero se me paso checar eso.
En línea

MinusFour
Moderador Global
***
Conectado Conectado

Mensajes: 4.952


I'm fourth.


Ver Perfil WWW
Re: campo date debuelve 1970-01-01
« Respuesta #9 en: 10 Julio 2014, 18:20 pm »

¿Eso te solucino tu problema?

Fechas como 2014-06-01 son reconocidas por strtotime(), así que si sigues con ese problema, no debe ser de ahí. Lo más probable es que el valor venga mal desde la base de datos.
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
MKTime() & <1970 ¬¬
PHP
Azielito 4 1,570 Último mensaje 29 Junio 2007, 15:47 pm
por [ Alberto]
[Bash] SCP + Date
Scripting
salvades 4 2,322 Último mensaje 9 Noviembre 2010, 01:33 am
por leogtz
PSP DATE CODE 1B
Juegos y Consolas
EuroHack 2 3,443 Último mensaje 23 Agosto 2011, 17:33 pm
por EuroHack
Date y Date
Java
danielo- 2 1,239 Último mensaje 11 Agosto 2013, 18:32 pm
por ~ Yoya ~
Consulta sql filtrada por campo date custom fields plugin
Desarrollo Web
kakashi20 0 689 Último mensaje 2 Enero 2016, 23:29 pm
por kakashi20
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines