Foros del Web » Programando para Internet » PHP »

Ayuda para eliminar imágenes del servidor

Estas en el tema de Ayuda para eliminar imágenes del servidor en el foro de PHP en Foros del Web. Hola a todos/as. me estoy volviendo loca. os cuento: tengo dos tablas relacionadas entre sí: en una meto los datos de una noticia y en ...
  #1 (permalink)  
Antiguo 22/05/2010, 01:24
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 18 años
Puntos: 1
Ayuda para eliminar imágenes del servidor

Hola a todos/as. me estoy volviendo loca. os cuento:

tengo dos tablas relacionadas entre sí: en una meto los datos de una noticia y en otra meto todas las imágenes que esa noticia lleva.

tabla noticias:

idnoticia -- autonumérico identificador de la noticia
noticia-- texto en sí

(Supongamos estos dos campos únicamente para simplificar)

tabla imagenes:

idimagen -- autonumérico identificador de cada imagen
idnoticiapk -- es el que relaciona esta tabla con la anterior. es el idnoticia de la noticia correspondiente.
imagen -- ruta en el servidor de la imagen
imagenth -- ruta en el servidor del thumbail de la imagen

bien. ahora supongamos que lo que deseo es eliminar una noticia. pues la lógica es:
1) identificar el idnoticia de la noticia que quiero eliminar
2) una vez que tengo ese idnoticia, irme a la tabla 'imagenes' y sacar las imágenes asociadas a esa noticia, sacar sus rutas.
3) obtenidas sus rutas, eliminar esas imágenes a través de unlink del servidor.
4) eliminadas las imágenes del servidor, entonces eliminar tanto las imágenes de la tabla 'imagenes' de la base de datos y posteriormente, eliminar la noticia de la tabla 'noticias'.

todo esto traducido a código es esto:

Código PHP:
//elimino las imágenes asociadas a esa noticia en el servidor
$sql="SELECT imagen,imagenth FROM imagenes WHERE idnoticiapk ='".$id."'";
    
$resultadoel=mysql_query($sql) or die (mysql_error()); 
    
$imagen=mysql_result($resultadoel,0,"imagen");
    
$imagenth=mysql_result($resultadoel,0,"imagenth");
    
unlink("$imagen");
    
unlink("$imagenth"); 
/////////
//eliminadas las imágenes, elimino los registros que tenían en la base de datos
//de la tabla 'imagenes'
    
mysql_query("DELETE FROM imagenes WHERE idnoticiapk ='$id");
//////////
//por último, elimino la noticia de la tabla 'noticias'
    
mysql_query("DELETE FROM noticias WHERE idnoticia ='$id"); 
bien. cuál es el problema? pues que hace todo correctamente pero si la noticia tiene asociada más de una imágen, del servidor sólamente elimina la primera, las otras que haya asociadas a esa noticia ahí las queda.

qué he de hacer para que me elimine todas las imágenes asociadas a esa noticia del servidor?

un beso,
__________________
desgraciadamente no conozco php ni la mitad de lo que lo conocen ustedes y eso es menos de la mitad de lo que yo querria y lo que yo querria es menos de la mitad de lo que la mitad de ustedes conocen
  #2 (permalink)  
Antiguo 22/05/2010, 06:07
Avatar de joska1993  
Fecha de Ingreso: septiembre-2009
Mensajes: 76
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Ayuda para eliminar imágenes del servidor

si lo haces con while, supongo que te borrara todas las imagenes de una noticia
  #3 (permalink)  
Antiguo 22/05/2010, 08:59
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 18 años
Puntos: 1
Respuesta: Ayuda para eliminar imágenes del servidor

pero donde coloco el while? porque ya probé y o lo hago mal o no es posible con el while

__________________
desgraciadamente no conozco php ni la mitad de lo que lo conocen ustedes y eso es menos de la mitad de lo que yo querria y lo que yo querria es menos de la mitad de lo que la mitad de ustedes conocen
  #4 (permalink)  
Antiguo 22/05/2010, 11:03
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 8 meses
Puntos: 10
Respuesta: Ayuda para eliminar imágenes del servidor

Si las id de todas las tablas son de autoincremento vas a tener ese problema...

Deduzco esto de "autonumérico identificador de la noticia"

Ya que si una noticia tiene id 1 eliminara la foto con id 1 ...y habra otra imagen asociada a esa noticia que no tendra id 1 , por ser de autoincremento ese campo.


Deberias hacer otro campo en donde pongas una id que se pueda repetir (no de autoincremento y que tampoco sea "unique" ). O ese mismo id autoincremento modificarlo:


Algo asi:

CREATE TABLE noticia (
idnoticia INT( 10 ) NOT NULL PRIMARY KEY,
noticia VARCHAR( 100 ) NOT NULL
);

Tu debes de tenerlo asi:

CREATE TABLE noticia (
idnoticia INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY,
noticia VARCHAR( 100 ) NOT NULL
);

Por otra parte, los campos auto_increment no se pueden repetir, no puede haber dos id iguales


Comenta que podria cambiar y quizá te pueda ayudar...

Última edición por wiwi74; 22/05/2010 a las 11:12
  #5 (permalink)  
Antiguo 22/05/2010, 12:13
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 18 años
Puntos: 1
Respuesta: Ayuda para eliminar imágenes del servidor

efectivamente, ese problema ya lo observé y lo que hice fue generar en cada noticia un código único que es el que asocio y que es el que meto en la variable $id. se me pasó comentarlo, de tal modo que la noticia número 1 (con idautonumerico 1) tiene un código único, por ejemplo el 53629def. y ese código único se utiliza en la tabla imágenes para relacionar esas imágenes con la noticia. de tal modo, que lo que se pasa en el caso este en concreto es ese código.

pero aún así sigue eliminando sólo la primera. quizás sea más por el tema del while, pero es que no soy capaz de hacerlo funcionar

__________________
desgraciadamente no conozco php ni la mitad de lo que lo conocen ustedes y eso es menos de la mitad de lo que yo querria y lo que yo querria es menos de la mitad de lo que la mitad de ustedes conocen
  #6 (permalink)  
Antiguo 22/05/2010, 12:47
Avatar de mark_ant0n  
Fecha de Ingreso: enero-2009
Ubicación: Comitan, Chiapas mx
Mensajes: 388
Antigüedad: 15 años, 10 meses
Puntos: 6
Respuesta: Ayuda para eliminar imágenes del servidor

las imagenes la tienes en una carpeta???
tendrias que hacer algo asi
Código PHP:
Ver original
  1. <?php
  2. $ruta=$row['rutaimg'];
  3. unlink($ruta);
  4. ?>
__________________
"Diseño de software a la medida"

http://www.sadhoc.com
  #7 (permalink)  
Antiguo 22/05/2010, 13:18
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 8 meses
Puntos: 10
Respuesta: Ayuda para eliminar imágenes del servidor

Acabo de ver un detalle en tu codigo que se me habia escapado.

Mira estas dos lineas:

mysql_query("DELETE FROM imagenes WHERE idnoticiapk='$id");
mysql_query("DELETE FROM noticias WHERE idnoticia ='$id");

abres una comilla simple pero no la cierras: '$id


Ahora coregidas, y mejoradas:

mysql_query("DELETE FROM imagenes WHERE idnoticiapk='".$id."';");
mysql_query("DELETE FROM noticias WHERE idnoticia ='"$id.";");

O si no te funciona hazlo asi, pero la anterior ya funciona:
mysql_query("DELETE FROM imagenes WHERE idnoticiapk='$id';");


Por otra parte, si tu haces esto desde el prompt la consola (la ventanita negra) o desde phpMyAdmin:


DELETE FROM imagenes WHERE idnoticiapk='53629def.';

Te eliminara todas las imagenes con esa id, sin necesidad de codigo extra.

Asi que quiza tu error estaba en php... y esas comillas.



Por ejemlo: Acabo de tirar esta linea en mi servidor:
mysql_query("delete from localidades where id_pais='3';");
Y ...nooooo me borro todo un registro...

Verifica y nos cuentas.
  #8 (permalink)  
Antiguo 22/05/2010, 17:10
Avatar de mark_ant0n  
Fecha de Ingreso: enero-2009
Ubicación: Comitan, Chiapas mx
Mensajes: 388
Antigüedad: 15 años, 10 meses
Puntos: 6
Respuesta: Ayuda para eliminar imágenes del servidor

estibaliz2006, funciono o no funciono???, saludos...
__________________
"Diseño de software a la medida"

http://www.sadhoc.com
  #9 (permalink)  
Antiguo 23/05/2010, 02:16
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 18 años
Puntos: 1
Respuesta: Ayuda para eliminar imágenes del servidor

nada...sigue sin ir...
__________________
desgraciadamente no conozco php ni la mitad de lo que lo conocen ustedes y eso es menos de la mitad de lo que yo querria y lo que yo querria es menos de la mitad de lo que la mitad de ustedes conocen
  #10 (permalink)  
Antiguo 23/05/2010, 08:25
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 8 meses
Puntos: 10
Respuesta: Ayuda para eliminar imágenes del servidor

<?php

//Prueba con ejecutar esta simple linea de codigo, en un archivo solo, nuevo, sin tu codigo.
//Primero haces la coneccion a db para poder hacer la consulta,
//y seleccionas la db que contenga a la tabla imagenes
//Consulta:

//Escribe en la consulta, manualmente, una id que sepas que se repite en al tabla imagenes:
//(si pones una id que no se repita, la consulta te devolvera solo una fila)
//verifica, por si acaso, si existe un campo llamado "idnoticiapk"

$r=mysql_query("select * FROM imagenes WHERE idnoticiapk='UNA_ID_QUE_SE_REPITA';");

//aqui estaria el while que te dijeron
//pero para eliminar no necesitarias while; si para mostrar

while($row = mysql_fetch_array($r)){
//escribe dentro de los corchetes, y dentro de las comillas
//el nombre de cualquier campo de la tabla imagenes, veras, si funciona,
//todas las filas coincidente con esa id
echo $row['nombre_de_algun_campo_de_la_tabla_imagenes']."<br />";
}


?>
  #11 (permalink)  
Antiguo 23/05/2010, 13:37
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 18 años
Puntos: 1
Respuesta: Ayuda para eliminar imágenes del servidor

no no...no van por ahí los tiros....eso ya está hecho y supercomprobado.

partamos de lo siguiente:

tengo una tabla con articulos y una tabla con imágenes que recoge la ruta en el servidor de esas imágenes. ambas tablas están relacionadas por un mismo campo, por ejemplo, codigoart.

bien. mediante el código que tengo, elimina los registros de la tabla articulos con ese código, de la tabla imagenes con ese código pero a la hora de eliminar las imágenes del servidor a través de unlink, se queda únicamente en la primera que encuentra, no elimina todas.

qué hacer por dios....
__________________
desgraciadamente no conozco php ni la mitad de lo que lo conocen ustedes y eso es menos de la mitad de lo que yo querria y lo que yo querria es menos de la mitad de lo que la mitad de ustedes conocen
  #12 (permalink)  
Antiguo 23/05/2010, 14:48
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 8 meses
Puntos: 10
Respuesta: Ayuda para eliminar imágenes del servidor


Última edición por wiwi74; 23/05/2010 a las 17:56
  #13 (permalink)  
Antiguo 23/05/2010, 17:56
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 8 meses
Puntos: 10
Respuesta: Ayuda para eliminar imágenes del servidor

Reemplaza todo el codigo que posteaste, por este a ver que pasa:
Es necesario que en la tabla "magenes" figuren todas los registro (rutas) de las imagenes que tienes en determinada carpeta, de lo contrario el loop no itarara. Si no funciona te digo que ese loop debe recorrer a la tabla que contenga las rutas a toda las imagenes (segun tu post, "magenes").




El codigo:




<?php


//Se supone que $id viene con algun valor, una id
$result_query=mysql_query("SELECT * FROM imagenes WHERE idnoticiapk='".$id."';");

//el loop iterara por cuantas imagenes halla con esa id
while($result_row=mysql_fetch_array($result_query) ){

//eliminamos las imagen encontrada en la iteracion
unlink($result_row['imagen']);
//elininamos el thumbail
unlink($result_row['imagenth']);
//eliminadas las imágenes, elimino los registros de la tabla 'imagenes'
mysql_query("DELETE FROM imagenes WHERE idnoticiapk ='".$id."'");
//por último, elimino la noticia de la tabla 'noticias'
mysql_query("DELETE FROM noticias WHERE idnoticia ='".$id."'");


}


?>
  #14 (permalink)  
Antiguo 24/05/2010, 00:32
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 18 años
Puntos: 1
Respuesta: Ayuda para eliminar imágenes del servidor

Nada de nada...bueno a ver. vamos a partir de otro ejemplo a ver si simplificándolo al máximo entre todos podemos sacarlo.

Partamos de una base de datos con dos tablas:

Campos de la Tabla 'artículos':

-idarticulo - autonumérico y único para cada registro
-codarticulo - código generado al azar que será único para cada artículo registrado y que a su vez nos valdrá para relacionar los artículos de esta tabla con sus imágenes asociadas en la tabla 'imagenes'
-articulo - Descripción del artículo

Campos de la Tabla 'imagenes':

-idimg - autonumérico y único para cada registro
-codimgart - es el código 'codarticulo' de la tabla anterior. Nos sirve para indicar qué imágenes corresponden a cada artículo.
-imagen - es la imagen a su tamaño real. Recoge la ruta de la imagen en el servidor
-imagen_th - es la imagen en thumbails. Recoge la ruta de la imagen en el servidor

Bien. Partiendo de estas dos tablas, tenemos lo siguiente:

Mediante una consulta extraigo todos los artículos que hay en la tabla 'articulos' de la base de datos y los listo. El código es este:

Código PHP:
echo " <form name='form' action='delete.php' METHOD='POST'>";
$sql "SELECT * FROM articulos ORDER BY idarticulo ASC";
$result mysql_query($sql) or die (mysql_error());
while(
$datos=mysql_fetch_array($result ) ){

echo 
"<table><tbody><tr>";
echo 
"<td>Seleccionar</td>";
echo 
"<td>Artículo</td>";
echo 
"</tr>";

echo 
"<tr>";
echo 
"<td><input type=checkbox name='codarticulo []' value='$datos[codarticulo ]'></td>";
echo 
"<td>$datos[articulo]</td>";
echo 
"</tr></tbody></table>";

echo 
"<a href='javascript:seleccionar_todo()'>Marcar todos</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href='javascript:deseleccionar_todo()'>Desmarcar Todos</a><br>
Para los elementos que están marcados <input type=submit value='Eliminar'></input>"
;

Bien. con el código anterior no sólo me lista los artículos de la tabla 'articulos' si no que además me da la posibilidad de seleccionar uno o varios o incluso todos los artículos para eliminarlos (el script para seleccionar o deseleccionar todos no creo que sea necesario mostrarlo), a través de un checkbox.

Bien. vamos ahora al quid de la cuestión: el archivo delete.php.

Este archivo recoge el siguiente código:

Código PHP:
//En primer lugar, recogemos en una única variable, $valor, los valores de los checkbox marcados, que recordemos recoge los codarticulo de cada artículo seleccionado para eliminar.

foreach($_POST["codarticulo"] as $valor){
//eliminamos las imágenes de ese artículo en cuestión que están en el servidor. para ello, utilizamos el nexo de relación entre un artículo de la tabla 'articulos' y las imágenes que este artículo tiene asociadas en la tabla 'imagenes': es decir, relacionamos coartimg con codarticulo (recogido en este caso en la variable $valor).    

    
$sql="SELECT imagen ,imagen _th FROM imagenes WHERE codimgart='".$valor."'";
    
$resultadoel=mysql_query($sql) or die (mysql_error());
    
$imagen =mysql_result($resultadoel,0,"imagen ");
    
$imagen _th=mysql_result($resultadoel,0,"imagen _th");
//borramos del servidor    
        
unlink("../$imagen ");
    
unlink("../$imagen _th");    
//eliminamos los registros de la tabla imagenes
    
mysql_query("DELETE FROM imagenes WHERE codimgart='$valor'");
//eliminamos los registros de la tabla articulos    
    
mysql_query("DELETE FROM articulos WHERE codarticulo='$valor'");

Bien. Resultado:

1) Eliminación del artículo seleccionado o de los artículos seleccionados (si a través del checkbox seleccionamos más de uno) de la tabla 'articulos': OK

2) Eliminación de las imágenes del artículo o de los artículos seleccionados (si a través del checkbox seleccionamos más de uno) de la tabla 'imagenes': OK

3) Eliminación de las imágenes del artículo o de los artículos seleccionados (si a través del checkbox seleccionamos más de uno) del Servidor: Sólo elimina la primera imagen que se encuentra de cada artículo seleccionado.

Bien. pues vamos a meter más lío en este asunto:

Si en lugar de tener dos tablas relacionadas a través de ese campo, el codarticulo y el codimgart, tengo únicamente una sola tabla donde recoga tanto el artículo como sus imágenes asociadas, aplicando la misma lógica anterior y el mismo código, me elimina todas las imágenes del servidor. ¿Cómo es posible? O sea, si está todo agrupado en una única tabla sí lo hace pero si está en dos tablas diferentes no? por dios, me estoy volviendo loca.

Seguro que dais con la solución porque yo ya no sé como llevarla a cabo.

necesito vuestra ayuda
__________________
desgraciadamente no conozco php ni la mitad de lo que lo conocen ustedes y eso es menos de la mitad de lo que yo querria y lo que yo querria es menos de la mitad de lo que la mitad de ustedes conocen
  #15 (permalink)  
Antiguo 24/05/2010, 04:56
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 18 años
Puntos: 1
Respuesta: Ayuda para eliminar imágenes del servidor

he probado otra opción pero nada...sigue eliminando únicamente la primera....
__________________
desgraciadamente no conozco php ni la mitad de lo que lo conocen ustedes y eso es menos de la mitad de lo que yo querria y lo que yo querria es menos de la mitad de lo que la mitad de ustedes conocen
  #16 (permalink)  
Antiguo 24/05/2010, 11:15
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 8 meses
Puntos: 10
Respuesta: Ayuda para eliminar imágenes del servidor

Lo subi a un server y funciono...

Última edición por wiwi74; 13/06/2010 a las 15:51
  #17 (permalink)  
Antiguo 24/05/2010, 11:51
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 18 años
Puntos: 1
Respuesta: Ayuda para eliminar imágenes del servidor

pues más o menos sólo que tú a cada artículo le asocias exclusivamente una sóla imagen con lo cual evidentemente la borrará del servidor. el problema es cuando ese mismo artículo tiene más de una imagen: supongamos, en tu ejemplo, que el articulo de código 123 tiene dos imágenes asociadas no una sóla como tú tienes. en este caso, el sistema sólo es capaz de eliminar la primera imagen y no las dos.
__________________
desgraciadamente no conozco php ni la mitad de lo que lo conocen ustedes y eso es menos de la mitad de lo que yo querria y lo que yo querria es menos de la mitad de lo que la mitad de ustedes conocen
  #18 (permalink)  
Antiguo 24/05/2010, 14:18
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 8 meses
Puntos: 10
Respuesta: Ayuda para eliminar imágenes del servidor

Me parece que ya funciona:

123 es el que tiene mas imagenes relacionadas (7):

http://75.127.104.17/~wiwi74/prueba/prueba.php

http://75.127.104.17/~wiwi74/tablas/img.html

Cualquier cosa te paso el codigo

Última edición por wiwi74; 24/05/2010 a las 14:26
  #19 (permalink)  
Antiguo 25/05/2010, 03:32
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 18 años
Puntos: 1
Respuesta: Ayuda para eliminar imágenes del servidor

te agradecería mucho si me lo pudieras pasar para echarle un vistazo y estudiar a ver en qué narices estoy fallando yo
__________________
desgraciadamente no conozco php ni la mitad de lo que lo conocen ustedes y eso es menos de la mitad de lo que yo querria y lo que yo querria es menos de la mitad de lo que la mitad de ustedes conocen
  #20 (permalink)  
Antiguo 25/05/2010, 07:33
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 8 meses
Puntos: 10
Respuesta: Ayuda para eliminar imágenes del servidor

Lee los comentarios y hazle los cambios para que te funcione a ti:


A decir verda funciono cuando toque el loop while, pero tendria que rever que toque...



<?

///// CONEXXION //////////


echo " <form name='form' action='' METHOD='POST'>";

$sql = "SELECT * FROM articulos ORDER BY idarticulo ASC";

$result = mysql_query($sql) or die (mysql_error());


while($datos=mysql_fetch_array($result) ){

echo "<table><tbody><tr>";
echo "<td>Seleccionar</td>";
echo "<td>Artículo</td>";
echo "</tr>";

echo "<tr>";
//quite codarticulo[] como array para evitar tener que recorrerlo (asi funciona)
echo "<td><input type=checkbox name='codarticulo' value='".$datos[codarticulo]."'></td>";
echo "<td>$datos[articulo].$datos[codarticulo]</td>";
echo "</tr></tbody></table>";

echo "<a href='javascript:seleccionar_todo()'>Marcar todos</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href='javascript:deseleccionar_todo()'>Desmarcar Todos</a><br>
Para los elementos que están marcados <input type=submit value='Eliminar'></input>";

}


//verificamos si hay un envio post
if($_POST["codarticulo"]){

echo "<h2>Se eliminaran:</h2>";


echo "<li>Codigo enviado: ".$_POST["codarticulo"];

//quitamos el foreach que recorria a codarticulo[] puesto que el mismo ya no es un array
//foreach($_POST["codarticulo"] as $valor){

//insertamos el envio post directamente en la consulta
$resultadoel=mysql_query("SELECT imagen,imagen_th FROM imagenes WHERE codimgart='".$_POST["codarticulo"]."';");

//Al resultado recogido lo convierto en un array (modo clasico)
//y asi se puede recorrer con un while
while($row_del = mysql_fetch_array($resultadoel) ){


//verificamos si existe la imagen y la borramos. Importante para que no de error unlink()
//aqui puse las imagenes dentro de una carpeta "img/" cambia a tu ruta
if(is_file("img/".$row_del['imagen'])){
echo "<li>IMG: ".$row_del['imagen'];
//unlink("img/".$row_del['imagen']);
}
//verificamos si existe la imagen th y la borramos
if(is_file("img/".$row_del['imagen_th'])){
echo "<li>IMG: ".$row_del['imagen_th'];
//unlink("img/".$row_del['imagen_th']);
}
}
}

?>

Etiquetas: eliminar, servidores
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:34.