Ver Mensaje Individual
  #3 (permalink)  
Antiguo 27/04/2019, 19:26
tuadmin
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 18 años
Puntos: 120
Respuesta: Convertir string en fecha para filtrar

Cita:
Iniciado por sotadeoros Ver Mensaje
Buenas

Tengo dos string Fecha1 y fecha2 con las que quiero hacer un filtro en mysql y estoy dando vueltas y siempre me da error.

Las cadenas son
Código:
$inicio = isset($_GET['fecha1'])? strval($_GET['fecha1']) : '';
$final  = isset($_GET['fecha2'])? strval($_GET['fecha2']) : '';
y la forma de hacer el filtro es:

Código:
	$pdf->Table('select DATE_FORMAT(fecha,"%d-%m-%y") AS fecha,expedi,consigna,domicilio,pobla,bultos,tipo,reembolso,observ from envio where codigo = "'.$contra.'" and almacen = "'.$almacen.'" and enviado = "S" and fecha BETWEEN $inicio AND $final');
El tema es que, claro, en la base de datos, fecha es tipo timestamp, y las variables inicio y final son tipo cadena, por lo que no puede compararse y tendria que convertir antes éstas cadenas.

Una ayuda

Saludos
luego por que hay webs hackeadas, bueno eso ya a futuro supongo que implementaras filtros para evitar inyecciones sql,

supongo que tu tabla de Mysql, esta ya con el campo DATETIME o DATE, asi que no es necesario que conviertas el string, basta con enviarle un ENTERO en tiempo UNIX segundos desde el año 1970, o bien enviarle la fecha con el formato que MYSQL espera recibir

asi que
Código PHP:
//https://www.php.net/manual/es/function.strtotime.php
$inicio = isset($_GET['fecha1'])? strval($_GET['fecha1']) : '0';
 
$timestamp_Segundos strtotime($inicio );
$final date("Y-m-d H:i:s"$timestamp_Segundos);
$inicio date("Y-m-d H:i:s"$timestamp_Segundos); 
en todo caso lo principal es que tu GET que tiene la fecha o tiempo debe estar en un formato que acepte la funcion "strtotime", una vez lo tengas asunto resuelto
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.com/pools/c/8lmNLmWnG9