Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Solucion al guardar fecha desde un xslx a mysql
#1
Fotografía 
Hola compañero tengo un problema al momento de guardar fechas en mysql
estoy importando un xslx desd php y guardarlo en mi base de datos, el problemas surge al momento de que en mi archivo hay valores de fechas estas no se guardan tal cual  en algunos casos la fecha se resta 1 dia ??? a que se debe o como debo convertir ese valor??

le di muchas vueltas al codigo y no pude la unica solucion fue esta:
Empece con este codigo el cual me resta un dia a las fechas. aqui mis columnas en mysql son valor date

*$fechaf =     date($format = "Y/m/d", PHPExcel_Shared_Date::ExcelToPHP($fecha));

                    $fechafasiste = date($format= "Y/m/d",PHPExcel_Shared_Date::ExcelToPHP($fechaA));
                    $fechafventa = date($format ="Y/m/d",PHPExcel_Shared_Date::ExcelToPHP($fechav));*/



Este es el codigo como me funciono solo que en mysql modifiqie el valor de la columna lo puse como varchar y se guardo tal cual la fecha.
esta es la mejor solucion o porque el anterior codigo en rojo pasaba ese detalle?
          
<?php

extract($_POST);
if ($action == "upload")  //si action tiene como valor UPLOAD haga algo (el value de este hidden es es UPLOAD iniciado desde el value
{
    //cargamos el archivo al servidor con el mismo nombre(solo le agregue el sufijo bak_)
$archivo = $_FILES['excel']['name']; //captura el nombre del archivo
$tipo = $_FILES['excel']['type']; //captura el tipo de archivo (2003 o 2007)
$destino = "febrero/"."bak_".$archivo; //lugar donde se copiara el archivo
if (copy($_FILES['excel']['tmp_name'],$destino)) //si dese copiar la variable excel (archivo).nombreTemporal a destino (bak_.archivo) (si se ha dejado copiar)
{
echo "Archivo Cargado Con Exito";
}
else 
{
    echo '<div class="alert alert-danger alert-dismissable"><button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>Necesitas primero seleccionar algun archivo xlsx </div>'; 

}
}
 if (file_exists ("febrero/"."bak_".$archivo)) //validacion para saber si el archivo ya existe previamente
{
/*INVOCACION DE CLASES Y CONEXION A BASE DE DATOS*/
/** Invocacion de Clases necesarias */
require_once('Classes/PHPExcel.php');
require_once('Classes/PHPExcel/Reader/Excel2007.php');
//DATOS DE CONEXION A LA BASE DE DATOS
// Cargando la hoja de calculo
$objReader = new PHPExcel_Reader_Excel2007(); //instancio un objeto como PHPExcelReader(objeto de captura de datos de excel)
$objPHPExcel = $objReader->load("febrero/"."bak_".$archivo); //carga en objphpExcel por medio de objReader,el nombre del archivo
 


$objPHPExcel->setActiveSheetIndex(0); //objPHPExcel tomara la posicion de hoja (en esta caso 0 o 1) con el setActiveSheetIndex(numeroHoja)
// Llenamos un arreglo con los datos del archivo xlsx
$i=2; //celda inicial en la cual empezara a realizar el barrido de la grilla de excel
$param=0;
$contador=0;
$duplicado=0;
   $fechaReporte=date('d-m-Y');
        while($param==0) //mientras el parametro siga en 0 (iniciado antes) que quiere decir que no ha encontrado un NULL entonces siga metiendo datos
{

$idcliente = $objPHPExcel->getActiveSheet()->getCell('A'.$i)->getCalculatedValue();
$nomfanp= $objPHPExcel->getActiveSheet()->getCell('B'.$i)->getCalculatedValue();
$codigo= $objPHPExcel->getActiveSheet()->getCell('C'.$i)->getCalculatedValue();
$fecha = $objPHPExcel->getActiveSheet()->getCell('D'.$i)->getCalculatedValue();
$nombre= $objPHPExcel->getActiveSheet()->getCell('E'.$i)->getCalculatedValue();
$tel= $objPHPExcel->getActiveSheet()->getCell('F'.$i)->getCalculatedValue();
$mail = $objPHPExcel->getActiveSheet()->getCell('G'.$i)->getCalculatedValue();
$origen = $objPHPExcel->getActiveSheet()->getCell('H'.$i)->getCalculatedValue();
$interes = $objPHPExcel->getActiveSheet()->getCell('I'.$i)->getCalculatedValue();
$vendedor = $objPHPExcel->getActiveSheet()->getCell('J'.$i)->getCalculatedValue();
$agenda = $objPHPExcel->getActiveSheet()->getCell('K'.$i)->getCalculatedValue();
$asiste = $objPHPExcel->getActiveSheet()->getCell('L'.$i)->getCalculatedValue();
$fechaA= $objPHPExcel->getActiveSheet()->getCell('M'.$i)->getCalculatedValue();
$venta = $objPHPExcel->getActiveSheet()->getCell('N'.$i)->getCalculatedValue();
$fechav= $objPHPExcel->getActiveSheet()->getCell('O'.$i)->getCalculatedValue();
$comentarios = $objPHPExcel->getActiveSheet()->getCell('P'.$i)->getCalculatedValue();

//Valido si el arreglo contiene datos duplicados 
$sqlv=mysqli_query($conexion,"SELECT * from leads_agencias_feb where id_cliente= '$idcliente' AND cod_agencia ='$codigo' AND Nombre_Completo = '$nombre' ");//Consulta a la tabla leads
$num=mysqli_num_rows($sqlv);//Cuenta el numero de registros devueltos por la consulta
           
            if ($num==NULL)//Si es == 0 inserto
            {
                /*$fechaf = date($format = "Y/m/d", PHPExcel_Shared_Date::ExcelToPHP($fecha)); 
                $fechafasiste = date($format= "Y/m/d",PHPExcel_Shared_Date::ExcelToPHP($fechaA));
                $fechafventa = date($format ="Y/m/d",PHPExcel_Shared_Date::ExcelToPHP($fechav));*/
                 $fechaf = PHPExcel_Style_NumberFormat::toFormattedString($fecha, 'DD/MM/YYYY');         
                    $fechafasiste = PHPExcel_Style_NumberFormat::toFormattedString($fechaA, 'DD/MM/YYYY');
                    $fechafventa = PHPExcel_Style_NumberFormat::toFormattedString($fechav, 'DD/MM/YYYY');
        $contador=$contador+1;
$sql = ("INSERT INTO leads_agencias_feb (id_cliente,nomfanp,cod_agencia,Fecha_Registro,Nombre_Completo,Telefono,E_mail,Origen,Interes_en,Vendedor,Agenda,Asiste,FechaA,Venta,FechaV,Comentarios,fechaReporte) VALUES ('$idcliente','$nomfanp','$codigo','$fechaf','$nombre','$tel','$mail','$origen','$interes','$vendedor','$agenda','$asiste','$fechafasiste','$venta','$fechafventa','$comentarios','$fechaReporte')");
$conexion->set_charset("utf8"); //Estableciendo utf8
mysqli_query($conexion,$sql);

            }
            else{
                
                  
                /*$fechaf = date($format = "Y/m/d", PHPExcel_Shared_Date::ExcelToPHP($fecha)); 
                $fechafasiste = date($format= "Y/m/d",PHPExcel_Shared_Date::ExcelToPHP($fechaA));
                $fechafventa = date($format ="Y/m/d",PHPExcel_Shared_Date::ExcelToPHP($fechav));*/
                
                $duplicado=$duplicado+1;
                $sqlu = ("UPDATE leads_agencias_feb SET  Telefono = '$tel', E_mail = '$mail', Origen = '$origen', Interes_en = '$interes',  Agenda = '$agenda', Asiste = '$asiste',FechaA ='$fechafasiste', Venta = '$venta',FechaV = '$fechafventa', Comentarios = '$comentarios', fechaReporte='$fechaReporte'  where id_cliente= '$idcliente' AND cod_agencia ='$codigo' AND Nombre_Completo = '$nombre' ");
$conexion->set_charset("utf8"); //Estableciendo utf8
mysqli_query($conexion,$sqlu);



            }

if($objPHPExcel->getActiveSheet()->getCell('A'.$i)->getCalculatedValue()==NULL) //pregunto que si ha encontrado un valor null en una columna inicie un parametro en 1 que indicaria el fin del ciclo while
{
$param=1; //para detener el ciclo cuando haya encontrado un valor NULL
}
$i++;

}

        $actualizado=$duplicado-1;
      
$totalIngresados=$contador; //(porque se se para con un NULL y le esta registrando como que tambien un dato)
echo '<div class="alert alert-success alert-dismissable"><button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>Se Guardo un total  de: '.$totalIngresados.' nuevos leads. , Se actualizaron  '.$actualizado.' leds previamente  registrados.  </div>';
}
/*else{
unlink($destino); 
}*/

?>

les agradecere sus comentarios


Posibles temas similares…
Tema Autor Respuestas Vistas Último mensaje
  [Duda] ¿Alguna pagina donde pueda aprender MYSQL+PHP? GabrielYzarra 0 86 14-05-2019, 04:19 PM
Último mensaje: GabrielYzarra
Exclamación Mysql Ayuda con valores Duplicados WMasterT 1 158 14-01-2019, 01:33 AM
Último mensaje: AbaddonOrmuz
  Como usar Datatable PHP & JSon & Mysql WMasterT 4 385 08-08-2018, 07:37 PM
Último mensaje: avdarie
  Subir multiples archivos o imágenes al servidor y guardarlas con PHP y MySQL cmascreativo 5 1,255 02-03-2018, 08:08 AM
Último mensaje: easy english
Bug Problema conectando con MySql remoto yuma2009 2 485 01-02-2018, 11:52 AM
Último mensaje: easy english
  error mysql en php admin efbsfcd 2 384 14-12-2017, 12:49 AM
Último mensaje: jeje
  [Tutorial] Jugar Flappy Bird desde la consola con Sfb el clon escrito en GNU sed carlsmartg 3 529 01-09-2017, 04:25 AM
Último mensaje: garcon
  Problema conexion remota mysql efbsfcd 2 500 07-07-2017, 07:19 AM
Último mensaje: efbsfcd
  [Tutorial] Pasar MySQL a MySQLi[POO] amner 6 839 03-05-2017, 02:05 AM
Último mensaje: ReyNexo23
  Obtener la fecha y hora actual en PHP CarlosAlberto 12 1,436 21-12-2016, 06:16 AM
Último mensaje: yayito21



Usuarios navegando en este tema: 1 invitado(s)