PHP - formato fecha al importar de excel a phpmyadmin - ayuda

 
Vista:
sin imagen de perfil
Val: 63
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

formato fecha al importar de excel a phpmyadmin - ayuda

Publicado por Monica (33 intervenciones) el 09/07/2019 14:20:31
Hola a todos,
Espero que podáis ayudarme con esta consulta.
Estoy importando un archivo de Excel a phpmyadmin y no tengo el formato correcto para la fecha. Lo tengo en el archivo de excel como yyyy-mm-dd y en phpmyadmin aparece como 0000-00-00. Aunque cambie el formato en excel, sigue mostrando 0000-00-00 en la base de datos. El resto de datos se muestra correctamente

He intentado cosas diferentes en el código pero el resultado es siempre el mismo. Tal vez alguien con el mismo problema pueda ayudarme.

Mi código para importar el archivo es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
if(isset($_FILES["name"])){
  $up = new Upload($_FILES["name"]);
  if($up->uploaded){
    $up->Process("./uploads/");
    if($up->processed){
 
        /// lee el archivo excel
 
        require_once 'PHPExcel/Classes/PHPExcel.php';
        $archivo = "uploads/".$up->file_dst_name;
        $inputFileType = PHPExcel_IOFactory::identify($archivo);
        $objReader = PHPExcel_IOFactory::createReader($inputFileType);
        $objPHPExcel = $objReader->load($archivo);
       //$PHPDateObject = PHPExcel_Shared_Date::ExcelToPHPObject($fecha);
        $sheet = $objPHPExcel->getSheet(0);
        $highestRow = $sheet->getHighestRow();
        $highestColumn = $sheet->getHighestColumn();
        for ($row = 2; $row <= $highestRow; $row++){
            $x_noCliente = $sheet->getCell("A".$row)->getValue();
            $x_nombreCliente = $sheet->getCell("B".$row)->getValue();
            $x_zv = $sheet->getCell("C".$row)->getValue();
            $x_noPedido = $sheet->getCell("D".$row)->getValue();
            $x_pedidoCliente = $sheet->getCell("E".$row)->getValue();
            $x_FechaPedido = $sheet->getCell("F".$row)->getValue();
            $x_importe = $sheet->getCell("G".$row)->getValue();
            $x_contrPen = $sheet->getCell("H".$row)->getValue();
            $x_pagoCont = $sheet->getCell("I".$row)->getValue();
            $x_credEx = $sheet->getCell("J".$row)->getValue();
            $x_deudaVen = $sheet->getCell("K".$row)->getValue();
            $x_cr = $sheet->getCell("L".$row)->getValue();
            $sql = "insert into pedidospendientes (noCliente, nombreCliente, zv, noPedido, pedidoCliente,
            FechaPedido, importe, contrPen, pagoCont, credEx, deudaVen, cr, created_at) value  ";
            $sql .= "
 (\"$x_noCliente\",\"$x_nombreCliente\",\"$x_zv\",\"$x_noPedido\",\"$x_pedidoCliente\",\"$x_FechaPedido\",\"$x_importe\",\"$x_contrPen\", \"$x_pagoCont\",\"$x_credEx\", \"$x_deudaVen\",\"$x_cr\",NOW())";
            $mysqli->query($sql);
        }
      unlink($archivo);
    }

  }
}

Espero que podáis ayudarme.
Muchas gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

formato fecha al importar de excel a phpmyadmin - ayuda

Publicado por joel (1269 intervenciones) el 09/07/2019 16:31:12
Hola Monica, si trabajas en formato ingles, tendria que funcionarte perfectamente....
Puedes hacer un
1
echo $sql;
antes de la linea 35? haber que valores envia a la base de datos'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 63
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

formato fecha al importar de excel a phpmyadmin - ayuda

Publicado por Monica (33 intervenciones) el 10/07/2019 08:19:33
Muchas gracias por tu respuesta.
He cambiado el idioma de excel a inglés y sigue dando la fecha como 0000-00-00 en la base de datos.
También he ejecutado echo $sql; y la fecha me da como "43700"

Como puedo cambiar el formato?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

formato fecha al importar de excel a phpmyadmin - ayuda

Publicado por Alejandro (839 intervenciones) el 12/07/2019 20:13:20
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Inténtalo convirtiendo a fecha
1
2
3
$sql = "insert into pedidospendientes (noCliente, nombreCliente, zv, noPedido, pedidoCliente,
FechaPedido, importe, contrPen, pagoCont, credEx, deudaVen, cr, created_at) value  ";
$sql .= "(\"$x_noCliente\",\"$x_nombreCliente\",\"$x_zv\",\"$x_noPedido\",\"$x_pedidoCliente\",CAST(\"$x_FechaPedido\" AS DATE),\"$x_importe\",\"$x_contrPen\", \"$x_pagoCont\",\"$x_credEx\", \"$x_deudaVen\",\"$x_cr\",NOW())";
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 63
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

formato fecha al importar de excel a phpmyadmin - ayuda

Publicado por Monica (33 intervenciones) el 13/07/2019 10:39:25
Hola Alenjandro,

Gracias por tu respuesta.
He hecho lo que sugieres pero no me funciona. He cambiado el código y al importar la tabla no sube ningún dato, es decir que no ejecuta el sql.

Tienes alguna otra sugerencia? He intentado un montón de cosas y no me cambia el formato fecha. Y es un campo muy importante.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

formato fecha al importar de excel a phpmyadmin - ayuda

Publicado por Alejandro (839 intervenciones) el 13/07/2019 15:42:35
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
De hecho me parece raro tu query, yo lo haría así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
$sql = "insert into pedidospendientes (
		noCliente, 
		nombreCliente, 
		zv, noPedido, 
		pedidoCliente,
		FechaPedido, 
		importe, 
		contrPen, 
		pagoCont, 
		credEx, 
		deudaVen, 
		cr, created_at
	) value  (
		'$x_noCliente',
		'$x_nombreCliente',
		'$x_zv',
		'$x_noPedido',
		'$x_pedidoCliente',
		CAST('$x_FechaPedido' AS DATE),
		'$x_importe',
		'$x_contrPen',
		'$x_pagoCont',
		'$x_credEx',
		'$x_deudaVen',
		'$x_cr',
		NOW()
	)";

y como bien te dicen hacer un echo $sql antes de ejecutarlo
1
2
echo "La fecha \"$x_FechaPedido\" <br />";
echo "El query: $sql";
Puedes ver que el campo fecha en verdad contenga lo que piensas y como es que te lo pone en el query.
El query que te devuelve lo puedes probar en la consola y ver que error te da.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 63
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

formato fecha al importar de excel a phpmyadmin - ayuda

Publicado por Monica (33 intervenciones) el 15/07/2019 09:21:48
Hola Alenjandro,

De nuevo he vuelto a aplicar intentar con lo que me sugieres y he hecho un echo $sql y un echo "La fecha \"$x_FechaPedido\" <br />";
y el resultado es el siguiente
La fecha "43671"
El query: insert into pedidospendientes ( noCliente, nombreCliente, zv, noPedido, pedidoCliente, FechaPedido, importe, contrPen, pagoCont, credEx, deudaVen, cr, created_at ) value ( '710002671', 'VILLAR CORCHON SL / 28906 GETAFE', '710101', '7100153023', 'CSM VALLECAS SOLAR SVE', CAST('43671' AS DATE), '7030.35', '', '', 'X', 'X', '2', NOW() )

Pero sigue sin cambiarme el formato. En el archivo excel el formato es fecha (05/07/2019)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

formato fecha al importar de excel a phpmyadmin - ayuda

Publicado por Alejandro (839 intervenciones) el 15/07/2019 16:01:13
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Esta claro que "43671" no es una fecha, ¿Segura que estas tomando el dato de la celda correcta?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 63
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

formato fecha al importar de excel a phpmyadmin - ayuda

Publicado por Monica (33 intervenciones) el 15/07/2019 16:13:14
Si, es el campo correcto y todas las fechas de la tabla me las guarda así
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 63
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

formato fecha al importar de excel a phpmyadmin - ayuda

Publicado por Monica (33 intervenciones) el 16/07/2019 14:44:57
Hola Alejandro,

Esta es la razón por la que la fecha está en ese formato numérico
Un archivo de Microsoft Excel almacena las fechas en un formato numérico que corresponde a los días desde el 1 de enero de 1900, teniendo en cuenta que php las fechas las guarda a partir de 1970

Y por lo que estoy viendo es complicado cambiar el formato. He intentado un montón de cosas pero sigo sin poder cambiar el formato de fecha.

Alguna otra sugerencia?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

formato fecha al importar de excel a phpmyadmin - ayuda

Publicado por Alejandro (839 intervenciones) el 16/07/2019 15:47:17
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
De ser así lo que tienes es un timestamp, en php usas date() para darle formato entendible.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
$sql = "insert into pedidospendientes (
		noCliente, 
		nombreCliente, 
		zv, noPedido, 
		pedidoCliente,
		FechaPedido, 
		importe, 
		contrPen, 
		pagoCont, 
		credEx, 
		deudaVen, 
		cr, created_at
	) value  (
		'$x_noCliente',
		'$x_nombreCliente',
		'$x_zv',
		'$x_noPedido',
		'$x_pedidoCliente',
		CAST('".date('d/m/Y H:i:s', $x_FechaPedido)."' AS DATE),
		'$x_importe',
		'$x_contrPen',
		'$x_pagoCont',
		'$x_credEx',
		'$x_deudaVen',
		'$x_cr',
		NOW()
	)";
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Lawliet
Val: 478
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

formato fecha al importar de excel a phpmyadmin - ayuda

Publicado por Lawliet (351 intervenciones) el 15/07/2019 18:21:39
Hola!!!

Por lo que veo es prácticamente cambiar un String o una cadena a un tipo DATE o fecha, por que no intentas usar la función de MySQL STR_TO_DATe. A continuación te dejo un ejemplo funcional...

1
INSERT INTO ejemplo(campo1,fecha) VALUES('".$_POST['campo1']."',STR_TO_DATE('".$_POST['aquí_va_la_cadena_a_pasar_como_fecha']."','%d/%m/%Y %H:%i:%s'));

La consulta de como se vería al momento de guardar se vería algo parecido a esto...

1
INSERT INTO ejemplo(campo1,fecha) VALUES('Ejemplo de fecha en MySQL',STR_TO_DATE('2019/07/15 11:20:00','%d/%m/%Y %H:%i:%s'));

Es importante mencionar que para el ejemplo que estoy usando uso la hora también por ello mi campo en base de datos se encuentra como DATETIME, por esa razón es que vez lo siguiente %H:%i:%s para especificar el formato de hora, pero si solamente vas a usar la fecha puedes omitirlo y quedarte solamente con %d/%m/%Y.

Si necesitas más información de la función, te dejo un enlace correspondiente en donde mencionan zonas horarias, etc... Algo simple pero funcional la documentación.

https://www.w3schools.com/sql/func_mysql_str_to_date.asp

Sin más que comentar, quedo al pendiente de cualquier duda y/o comentario.

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 63
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

formato fecha al importar de excel a phpmyadmin - ayuda

Publicado por monica (33 intervenciones) el 16/07/2019 14:46:41
Muchas gracias por la ayuda, pero no me ha cambiado el formato.

La verdad que estoy un poco frustrada con este cambio de formato porque no he sido capaz de conseguirlo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

formato fecha al importar de excel a phpmyadmin - ayuda

Publicado por Alejandro (839 intervenciones) el 17/07/2019 18:53:25
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
¿Ya probaste convertir el timestamp a fecha como te mencione arriba?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 63
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

formato fecha al importar de excel a phpmyadmin - ayuda

Publicado por Monica (33 intervenciones) el 17/07/2019 19:07:09
Si, lo probé pero no no me cambia el formato de la fecha.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Lawliet
Val: 478
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

formato fecha al importar de excel a phpmyadmin - ayuda

Publicado por Lawliet (351 intervenciones) el 17/07/2019 19:25:24
Hola!

No estoy seguro si tenga que ver el tipo que tiene ese campo, por lo menos los campos fecha que tengo son de este tipo datetime y no me ha dado problema alguno... Creo sería cuestión de validar el tipo que andas usando.

Captura

Sin más que comentar, quedo al pendiente de cualquier duda y/o comentario.

Saludos!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 63
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

formato fecha al importar de excel a phpmyadmin - ayuda

Publicado por Monica (33 intervenciones) el 17/07/2019 19:29:18
Hola,

En el archivo excel que importo la columna fecha tiene formato aaaa/mm/dd y también lo he probado con dd/mm/aaaa. En la base de datos el campo es de tipo DATE.

Al importar el archivo, en php me muestra el campo como 0000-00-00
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Lawliet
Val: 478
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

formato fecha al importar de excel a phpmyadmin - ayuda

Publicado por Lawliet (351 intervenciones) el 17/07/2019 19:35:37
No estoy seguro si tenga que ver, de hecho no creo que tenga que ver eso pero si en vez de / lo cambias por - que es el mismo que se utiliza en el PHP, digo... No creo que tenga que ver pero hay que descargar posibilidades.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 63
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

formato fecha al importar de excel a phpmyadmin - ayuda

Publicado por Monica (33 intervenciones) el 17/07/2019 19:36:45
Ya lo hice para descartar. No cambia nada
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Lawliet
Val: 478
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

formato fecha al importar de excel a phpmyadmin - ayuda

Publicado por Lawliet (351 intervenciones) el 17/07/2019 19:46:45
Podrías adjuntar el código completo, por favor, así como el archivo que andas usando de pruebas. gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 63
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

formato fecha al importar de excel a phpmyadmin - ayuda

Publicado por Monica (33 intervenciones) el 18/07/2019 19:13:23
Aquí tienes el código

importar.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php
require 'funcs/conexion.php';
include "class.upload.php";
 
 
if(isset($_FILES["name"])){
	$up = new Upload($_FILES["name"]);
	if($up->uploaded){
		$up->Process("./uploads/");
		if($up->processed){
            /// leer el archivo excel
            require_once 'PHPExcel/Classes/PHPExcel.php';
 
            $archivo = "uploads/".$up->file_dst_name;
            $inputFileType = PHPExcel_IOFactory::identify($archivo);
            $objReader = PHPExcel_IOFactory::createReader($inputFileType);
            $objPHPExcel = $objReader->load($archivo);
            $sheet = $objPHPExcel->getSheet(0);
            $highestRow = $sheet->getHighestRow();
            $highestColumn = $sheet->getHighestColumn();
            for ($row = 2; $row <= $highestRow; $row++){
                $x_noCliente = $sheet->getCell("A".$row)->getValue();
                $x_nombreCliente = $sheet->getCell("B".$row)->getValue();
                $x_zv = $sheet->getCell("C".$row)->getValue();
                $x_noPedido = $sheet->getCell("D".$row)->getValue();
                $x_pedidoCliente = $sheet->getCell("E".$row)->getValue();
                $x_FechaPedido = $sheet->getCell("F".$row)->getValue();
                $x_importe = $sheet->getCell("G".$row)->getValue();
                $x_contrPen = $sheet->getCell("H".$row)->getValue();
                $x_pagoCont = $sheet->getCell("I".$row)->getValue();
                $x_credEx = $sheet->getCell("J".$row)->getValue();
                $x_deudaVen = $sheet->getCell("K".$row)->getValue();
                $x_cr = $sheet->getCell("L".$row)->getValue();
               $sql = "insert into pedidospendientes (
		                noCliente, 
	                	nombreCliente, 
	                	zv, noPedido, 
	                	pedidoCliente,
	                	FechaPedido, 
	                	importe, 
	                	contrPen, 
	                	pagoCont, 
	                	credEx, 
	                	deudaVen, 
	                	cr, created_at
                    	) value  (
	                	'$x_noCliente',
	                	'$x_nombreCliente',
	                	'$x_zv',
	                	'$x_noPedido',
	                	'$x_pedidoCliente',
	                	'$x_FechaPedido',
	                	'$x_importe',
	                	'$x_contrPen',
	                	'$x_pagoCont',
	                	'$x_credEx',
	                	'$x_deudaVen',
	                	'$x_cr',
	                    NOW()
                    	)";
               $mysqli->query($sql);
            }
    	unlink($archivo);
        }
 
}
}
//echo "La fecha \"$x_FechaPedido\" <br />";
//echo gettype($x_FechaPedido);
//echo "El query: $sql"; 
echo "<script>
window.location = 'pedidospendientes.php';
</script>
";
 
?>

Adjunto la página a la que van los datos pedidospendientes.php y el archivo xlsx con los datos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

formato fecha al importar de excel a phpmyadmin - ayuda

Publicado por Alejandro (839 intervenciones) el 17/07/2019 19:54:45
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Para mi desde que te muestra ese valor "43671" esta mal, pero aseguras que es la celda correcta.
vamos por partes, si no puedes ni mostrar el valor correcto mucho menos insertarlo, intenta
1
echo gettype($x_FechaPedido);

¿Cual es la fecha que te corresponde al valor 43671?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 63
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

formato fecha al importar de excel a phpmyadmin - ayuda

Publicado por Monica (33 intervenciones) el 18/07/2019 18:56:31
De resultado me da
double

Pero yo en la base de datos lo tengo como DATE
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

formato fecha al importar de excel a phpmyadmin - ayuda

Publicado por Alejandro (839 intervenciones) el 18/07/2019 22:13:56
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Como te dicen, publica el código y archivo de ejemplo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 63
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

formato fecha al importar de excel a phpmyadmin - ayuda

Publicado por Monica (33 intervenciones) el 19/07/2019 07:44:34
así hice. Gracias. Espero que viendo el código me podáis ayudar

Insisto, muchas gracias por vuestra ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

formato fecha al importar de excel a phpmyadmin - ayuda

Publicado por Alejandro (839 intervenciones) el 19/07/2019 17:02:08
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
El número que te da son días a partir de 01/01/1900 pero haciendo cuentas me da 2 días de mas ¬_¬
Entiendo que 01/01/1900 + 1 es 02/01/1900 cuando el 1 indica el primer día y debería ser 01/01/1900, pero me sigue sobrando un numero.

PHPExcel te convierte esos días a timestamp, pero así, me falta un día :P no lo entiendo.

Como sea esto fue lo que me dio la fecha correcta.
1
2
$x_FechaPedido = $sheet->getCell("F".$row)->getValue();
$x_FechaPedido = date('d/m/Y',PHPExcel_Shared_Date::ExcelToPHP($x_FechaPedido+1));
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 63
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

formato fecha al importar de excel a phpmyadmin - ayuda

Publicado por Monica (33 intervenciones) el 19/07/2019 18:40:17
Hola Alejandro,

Lo primero es agradecer la ayuda que me estás prestando
He puesto el código que dices. He hecho un echo y tipo de campo ahora es string. Al importarlo a la base de datos me sigue saliendo el formato americano con 0000-00-00. Te adjunto un archivo para que lo veas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

formato fecha al importar de excel a phpmyadmin - ayuda

Publicado por Alejandro (839 intervenciones) el 19/07/2019 22:40:43
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Lo primero es que generes el query bien, y pues aplicas lo que ya te he contestado anteriormente.
No tiene que ver el formato pues a final de cuentas sera de tipo date, para eso es cast.

1
2
CAST('".date('d/m/Y', $x_FechaPedido)."' AS DATE)
CAST('".date('Y-m-d', $x_FechaPedido)."' AS DATE)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 63
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

formato fecha al importar de excel a phpmyadmin - ayuda

Publicado por Monica (33 intervenciones) el 20/07/2019 13:21:06
ahora me convierte el campo siempre en la misma fecha
1970/01/01

no lo entiendo, algo debo de estar haciendo mal. Pero cierto es que gracias a ti he avanzado bastante, ahora al menos convierte el campo en fecha. Te paso el código como queda ahora y como verás hay dos campos con fechas y en ambos la fecha es siempre la misma y es 1970/01/01

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
if(isset($_FILES["name"])){
	$up = new Upload($_FILES["name"]);
	if($up->uploaded){
		$up->Process("./uploads/");
		if($up->processed){
            /// leer el archivo excel
            require_once 'PHPExcel/Classes/PHPExcel.php';
 
            $archivo = "uploads/".$up->file_dst_name;
            $inputFileType = PHPExcel_IOFactory::identify($archivo);
            $objReader = PHPExcel_IOFactory::createReader($inputFileType);
            $objPHPExcel = $objReader->load($archivo);
            $sheet = $objPHPExcel->getSheet(0);
            $highestRow = $sheet->getHighestRow();
            $highestColumn = $sheet->getHighestColumn();
            for ($row = 2; $row <= $highestRow; $row++){
                $x_noCliente = $sheet->getCell("A".$row)->getValue();
                $x_nombreCliente = $sheet->getCell("B".$row)->getValue();
                $x_zv = $sheet->getCell("C".$row)->getValue();
                $x_noPedido = $sheet->getCell("D".$row)->getValue();
                $x_pedidoCliente = $sheet->getCell("E".$row)->getValue();
                $x_FechaPedido = $sheet->getCell("F".$row)->getValue();
                $x_FechaPedido = date('Y-m-d',PHPExcel_Shared_Date::ExcelToPHP($x_FechaPedido));
                $x_importe = $sheet->getCell("G".$row)->getValue();
                $x_contrPen = $sheet->getCell("H".$row)->getValue();
                $x_contrPen = date('Y-m-d',PHPExcel_Shared_Date::ExcelToPHP($x_contrPen));
                $x_pagoCont = $sheet->getCell("I".$row)->getValue();
                $x_credEx = $sheet->getCell("J".$row)->getValue();
                $x_deudaVen = $sheet->getCell("K".$row)->getValue();
                $x_cr = $sheet->getCell("L".$row)->getValue();
               $sql = "insert into pedidospendientes (
		                noCliente, 
	                	nombreCliente, 
	                	zv, noPedido, 
	                	pedidoCliente,
	                	FechaPedido, 
	                	importe, 
	                	contrPen, 
	                	pagoCont, 
	                	credEx, 
	                	deudaVen, 
	                	cr, created_at
                    	) value  (
	                	'$x_noCliente',
	                	'$x_nombreCliente',
	                	'$x_zv',
	                	'$x_noPedido',
	                	'$x_pedidoCliente',
	                	 CAST('".date('Y-m-d', $x_FechaPedido)."' AS DATE),
	                	'$x_importe',
	                	 CAST('".date('Y-m-d', $x_contrPen)."' AS DATE),
	                	'$x_pagoCont',
	                	'$x_credEx',
	                	'$x_deudaVen',
	                	'$x_cr',
	                    NOW()
                    	)";
               $mysqli->query($sql);
            }
    	unlink($archivo);
        }
 
}
}
 
echo "<script>
window.location = 'pedidospendientes.php';
</script>
";
 
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

formato fecha al importar de excel a phpmyadmin - ayuda

Publicado por Alejandro (839 intervenciones) el 20/07/2019 16:40:00
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Por favor usa el botón </> código.

Piensale un poquito, parece que solo te limitas a las respuestas (¬_¬ ¡)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
require_once '../../omegaweb/inc/PHPExcel/PHPExcel.php';
 
$archivo = "pedidospendientes.xlsx";
$inputFileType = PHPExcel_IOFactory::identify($archivo);
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load($archivo);
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow();
$highestColumn = $sheet->getHighestColumn();
for ($row = 2; $row <= $highestRow; $row++){
	$x_noCliente = $sheet->getCell("A".$row)->getValue();
	$x_nombreCliente = $sheet->getCell("B".$row)->getValue();
	$x_zv = $sheet->getCell("C".$row)->getValue();
	$x_noPedido = $sheet->getCell("D".$row)->getValue();
	$x_pedidoCliente = $sheet->getCell("E".$row)->getValue();
	$x_FechaPedido = $sheet->getCell("F".$row)->getValue();
	$x_FechaPedido = date('Y-m-d',PHPExcel_Shared_Date::ExcelToPHP($x_FechaPedido+1));
	$x_importe = $sheet->getCell("G".$row)->getValue();
	$x_contrPen = $sheet->getCell("H".$row)->getValue();
	$x_contrPen = date('Y-m-d',PHPExcel_Shared_Date::ExcelToPHP($x_contrPen+1));
	$x_pagoCont = $sheet->getCell("I".$row)->getValue();
	$x_credEx = $sheet->getCell("J".$row)->getValue();
	$x_deudaVen = $sheet->getCell("K".$row)->getValue();
	$x_cr = $sheet->getCell("L".$row)->getValue();
	$sql = "insert into pedidospendientes (
		noCliente,
		nombreCliente,
		zv, noPedido,
		pedidoCliente,
		FechaPedido,
		importe,
		contrPen,
		pagoCont,
		credEx,
		deudaVen,
		cr, created_at
	) value (
		'$x_noCliente',
		'$x_nombreCliente',
		'$x_zv',
		'$x_noPedido',
		'$x_pedidoCliente',
		CAST('$x_FechaPedido' AS DATE),
		'$x_importe',
		CAST('$x_contrPen' AS DATE),
		'$x_pagoCont',
		'$x_credEx',
		'$x_deudaVen',
		'$x_cr',
		NOW()
	)<br />";
	echo $sql;
}
?>

Tendrás el problema en el caso que la fecha esta vacía, te lo dejo de tarea.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 63
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

formato fecha al importar de excel a phpmyadmin - ayuda

Publicado por Monica (33 intervenciones) el 22/07/2019 18:25:53
Muchas gracias por la ayuda y por ponerme tareas :-) La verdad es que he aprendido mucho estos días.

Y perdón por no usar el botón del código, no me he dado cuenta.

Si la fecha está vacía lo he resuelto así

1
$x_contrPen = !empty($x_contrPen) ? date('Y-m-d',PHPExcel_Shared_Date::ExcelToPHP($x_contrPen)) : null;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

formato fecha al importar de excel a phpmyadmin - ayuda

Publicado por Alejandro (839 intervenciones) el 22/07/2019 18:33:44
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Te felicito por tu logro y me alegro que no te hayas resentido. Sigue adelante
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 63
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

formato fecha al importar de excel a phpmyadmin - ayuda

Publicado por Monica (33 intervenciones) el 09/10/2019 12:32:40
Hola Alejandro,
Sigo trabajando en este proyecto y cada día aprendo más, pero aún me falta mucho camino. Como sabes tengo un archivo que importa de excel a la base de datos y los muestra en una tabla al usuario.
Necesito que al importar los datos con el archivo importar.php, los campos de fechasEnvio y fechaActual se resten y el dato salga en el campo "contador". He conseguido que a resta se haga, pero al poner echo $contador-> lo único que se importa y muestra en página es la diferencia de días.
Como puedo hacer para que la diferencia de días salga en el campo "contador". Podrías por favor ayudarme?, seguro que hay algo en el código que estoy haciendo muy mal. Te envío la parte en la que está el código de las fechas y el contador
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$x_fechaEnvio  = $sheet->getCell("F".$row)->getValue();
    $x_fechaEnvio =  !empty($x_fechaEnvio) ? date('Y-m-d',PHPExcel_Shared_Date::ExcelToPHP($x_fechaEnvio)) : null;
    $x_fechaRecep = $sheet->getCell("G".$row)->getValue();
    $x_fechaRecep = !empty($x_fechaRecep) ? date('Y-m-d',PHPExcel_Shared_Date::ExcelToPHP($x_fechaRecep)) : null;
    $x_fechaActual = $sheet->getCell("H".$row)->getValue();
    $datetime1 = date_create($x_fechaActual);
    $datetime2 = date_create($x_fechaEnvio);
    $contador = date_diff($datetime1, $datetime2);
    echo $contador->format('%R%a d&#237;as');
    $x_contador = $sheet->getCell("I".$row)->getValue();
    $x_contador = $x_fechaActual->diff($x_fechaEnvio);
 
$sql = "insert into contratospendientes (
fechaEnvio,
    fechaActual,
    fechaRecep,
    contador,
) value  (
CAST('$x_fechaEnvio' AS DATE),
     NOW(),
     CAST('$x_fechaRecep' AS DATE),
     '$x_contador',

Muchas gracias de antemano.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

formato fecha al importar de excel a phpmyadmin - ayuda

Publicado por Evelyn Rosana Alvarado Millacheo (1 intervención) el 09/05/2020 02:41:01
buenísimo, me sirvió mucho para insertar la fecha desde excel. gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

formato fecha al importar de excel a phpmyadmin - ayuda

Publicado por Jennifer Puerta (1 intervención) el 25/02/2021 03:50:42
A mi me sirvio https://academy.leewayweb.com/como-tratar-con-fechas-en-excel-usando-php/

Para leer correctamente una fecha desde Excel.

El detalle es que yo almaceno la fecha tipo varchar en la tabla, dado a que es solo referencial y adeaquería evitarme este tipo de problemas de conversión.


$date = \PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($value);

1
2
3
4
5
6
7
8
9
require 'vendor/autoload.php';
 
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Shared\Date;
 
$retorno = Date::excelToDateTimeObject($valor);
echo date_format($retorno, 'd/m/Y H:i:s');

Cabe resaltar que funciona cuando la celda excel tiene formato personalizado o formato fecha.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

formato fecha al importar de excel a phpmyadmin - ayuda

Publicado por Mario Rodolfo Arroyo Vaca (1 intervención) el 08/08/2022 22:29:44
buenas tardes, desde Bolivia te escribo, te paso un link que me resulto:
https://scriptinside.blogspot.com/2010/06/convertir-fechas-de-excel-php.html

$fecha_excel = $objPHPExcel->getActiveSheet()->getCell($datos['FechaVen'].$i)->getCalculatedValue()+ 1;
$timestamp = PHPExcel_Shared_Date::ExcelToPHP($fecha_excel);
$fecha_php = date("Y-m-d",$timestamp);

de echo tuve que aumentarle un dia a la fecha ya que me guardaba con menos 1 dia.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar