Comunidad de diseño web y desarrollo en internet online

Problema formato fecha entre php y datepicker

Citar            
MensajeEscrito el 21 Jul 2014 04:51 pm
Chicos,
Tengo un input al cual estoy mostrando un datepicker con formato fecha "dd/mm/yy"
por php estoy obteniendo el valor y formateando a formato ingles "yy/mm/dd"

Código PHP :

$fecha = date('Y/m/d',strtotime($_POST['fechaVisits']));


El tema es que realizo pruebas a ver si funciona con var_dump($fecha );
Si establesco la fecha actual (hoy) me transforma de dd/mm/yy a yy/mm/dd
Pero si me voy a una fecha antigua (meses atras) o fecha posterior me esta imprimiendo siempre lo mismo

string(10) "1970/01/01"

Porque pasa esto? intente probar dia por dia para ver donde estaba el quiebre y es totalmente relativo. puedo poner 20/02/2018 y arroja normal string(10) "2018/02/20" pero si cambio por un dia o mes vuelve a mostrar string(10) "1970/01/01".

A que se debe?

Por jozeepp

17 de clabLevel



 

chrome
Citar            
MensajeEscrito el 21 Jul 2014 05:06 pm
A que el dato que guardas en tu base de datos, no es valida :)

Al querer guardarla, no la estas guardando en el formato correcto. Verifica que fecha tienes.

Debes generar un traducto (un Transform) que pase de tu fecha visualmente agradable, a la fecha que acepta el sistema..

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

chrome
Citar            
MensajeEscrito el 21 Jul 2014 08:25 pm

elporfirio escribió:

A que el dato que guardas en tu base de datos, no es valida :)

Al querer guardarla, no la estas guardando en el formato correcto. Verifica que fecha tienes.

Debes generar un traducto (un Transform) que pase de tu fecha visualmente agradable, a la fecha que acepta el sistema..


aun no he enviado los datos a la base. antes de hacerlo estoy validando como son capturados.
la verdad es que hay rangos de fecha en el que el codigo :
$fecha = date('Y/m/d',strtotime($_POST['fechaVisits']));
si muestra la fecha correcta. con eso se valida que el formato esta entrando bien.
pero cuando selecciono fechas muy atras o muy adelante del datepicker aparece solo la fecha
string(10) "1970/01/01" pasando el parametro por date('Y/m/d',strtotime($_POST['fechaVisits']));

Por jozeepp

17 de clabLevel



 

chrome
Citar            
MensajeEscrito el 22 Jul 2014 12:33 pm
¿Qué formato de fecha devuelve ese datepicker?. Tu problema está ahí, no en PHP.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 22 Jul 2014 03:36 pm
El datepicker lo tengo con dateFormat: 'dd/mm/yy'.
sin hacer el formateo con php y revise que valores devuelve y efectivamente entrega dd/mm/yy.
no se si el problema este ahí, porque sin hacer ningún formateo coloco cualquier fecha y esta se envía por $_POST sin ningún problema. el tema esta cuando aplico
date('Y/m/d',strtotime($_POST['fechaVisits']));

Por jozeepp

17 de clabLevel



 

chrome
Citar            
MensajeEscrito el 22 Jul 2014 05:46 pm
como sabes que el valor que pasa es correcto o que se guarda correctamente en la base de datos ?

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

chrome
Citar            
MensajeEscrito el 22 Jul 2014 06:32 pm
antes de aplicar formateo de la fecha
hago un var_dump($_POST['fechaVisits']);
con eso valido el formato que esta lanzando el datepicker lo cual aparece dd/mm/yy
luego al aplicar formateo hago lo mismo:

$fecha = date('Y/m/d',strtotime($_POST['fechaVisits']));
vard_dump($fecha);
exit;

y es luego del formateo con date() pasa lo que explique.

Por jozeepp

17 de clabLevel



 

chrome
Citar            
MensajeEscrito el 23 Jul 2014 12:12 pm
Pues ahí está el problema. strtotime no entiende el formato dd/mm/YY.

Lo más seguro es pasar la fecha devuelva por el timepicker a ISO, o sea, de dd/mm/YY a YYYY-mm-dd antes de aplicar strtotime.

Y consejo para la próxima: Siempre convierte las fechas ingresada por los usuarios a ISO para trabajar internamente.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 23 Jul 2014 08:39 pm

DriverOp escribió:

Pues ahí está el problema. strtotime no entiende el formato dd/mm/YY.

Lo más seguro es pasar la fecha devuelva por el timepicker a ISO, o sea, de dd/mm/YY a YYYY-mm-dd antes de aplicar strtotime.

Y consejo para la próxima: Siempre convierte las fechas ingresada por los usuarios a ISO para trabajar internamente.


Ahora todo calza.
Muchas gracias por todo!!!

Por jozeepp

17 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.