Foros del Web » Programando para Internet » PHP »

De fecha va el asunto...

Estas en el tema de De fecha va el asunto... en el foro de PHP en Foros del Web. Hola a todos, como puedo sacar la fecha actual en php y como se comparan fechas??? Gracias!!!!...
  #1 (permalink)  
Antiguo 29/05/2005, 12:41
 
Fecha de Ingreso: mayo-2005
Mensajes: 78
Antigüedad: 12 años, 7 meses
Puntos: 0
De fecha va el asunto...

Hola a todos, como puedo sacar la fecha actual en php y como se comparan fechas???

Gracias!!!!
  #2 (permalink)  
Antiguo 29/05/2005, 12:48
Avatar de Edypu  
Fecha de Ingreso: octubre-2003
Ubicación: La Paz - Bolivia
Mensajes: 394
Antigüedad: 14 años, 2 meses
Puntos: 1
Hola de nuevo CapiCapi
esto te servira
Código PHP:
// captura de datos del sistema FECHA Día Mes Año Hora
$fecha date('Y-m-d');
$fecha_hora date('Y-m-d G:i:s');
$fecha_formato date('d-m-Y');
$fecha_formato_hora date('d-m-Y G:i:s');
$dia date('d');
$mes date('m');
$anio date('Y');
$hora date('G:i:s');
$hrs date('G:i'); 
  #3 (permalink)  
Antiguo 29/05/2005, 12:49
Avatar de gustavoang  
Fecha de Ingreso: julio-2003
Ubicación: Valencia - Venezuela
Mensajes: 253
Antigüedad: 14 años, 4 meses
Puntos: 1
Para sacar la fecha actual, revisa: www.php.net/getdate

Y, ¿Cómo quieres comparar las fechas?

Saludos,

---------------

EDITADO: Ya otro miembro había respondido...
__________________
Gustavo Narea.
Venezuela.
  #4 (permalink)  
Antiguo 29/05/2005, 12:54
 
Fecha de Ingreso: mayo-2005
Mensajes: 78
Antigüedad: 12 años, 7 meses
Puntos: 0
Gracias a los dos...

Lo que yo digo de comprar fechas, es comparar la fecha actual (por ejemplo) con otra que tengo en una variable...

Gracias de nuevo...
  #5 (permalink)  
Antiguo 29/05/2005, 13:08
Avatar de gustavoang  
Fecha de Ingreso: julio-2003
Ubicación: Valencia - Venezuela
Mensajes: 253
Antigüedad: 14 años, 4 meses
Puntos: 1
$fecha_actual==$fecha_otra
$fecha_actual>$fecha_otra

Te refieres a algo como eso?
__________________
Gustavo Narea.
Venezuela.
  #6 (permalink)  
Antiguo 29/05/2005, 13:09
 
Fecha de Ingreso: mayo-2005
Mensajes: 78
Antigüedad: 12 años, 7 meses
Puntos: 0
Si, algo como eso, xro eso funciona? Es para comparar una fecha actual con una fecha de mysql q esta guardada en una variables, asi como as puesto se puede????
  #7 (permalink)  
Antiguo 29/05/2005, 13:14
Avatar de gustavoang  
Fecha de Ingreso: julio-2003
Ubicación: Valencia - Venezuela
Mensajes: 253
Antigüedad: 14 años, 4 meses
Puntos: 1
Puedes compararlas en una sentencia SQL y también usando PHP.

Por favor explícanos un poco mejor lo que deseas hacer.

Saludos.
__________________
Gustavo Narea.
Venezuela.
  #8 (permalink)  
Antiguo 29/05/2005, 13:16
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Si es para comparar fechas guardadas en la base de datos, es mucho más eficiente utilizar las funciones que te proporciona mysql.
http://dev.mysql.com/doc/mysql/en/da...functions.html

La fecha actual la obtienes como CURDATE() o NOW().

¿Qué es lo que quiers comparar exactamente?

Saludos
  #9 (permalink)  
Antiguo 29/05/2005, 13:22
 
Fecha de Ingreso: mayo-2005
Mensajes: 78
Antigüedad: 12 años, 7 meses
Puntos: 0
a ver... kiero comprar la fecha actual del sistema... con otra fecha que esta guardada en una variable que la he recuperado de una consulta a la BD (mysql), es decir
comprar $actual con $fechamysql
Comparo una fecha actual con una fecha de la base de datos...

Saludos y gracias...
  #10 (permalink)  
Antiguo 29/05/2005, 13:27
Avatar de gustavoang  
Fecha de Ingreso: julio-2003
Ubicación: Valencia - Venezuela
Mensajes: 253
Antigüedad: 14 años, 4 meses
Puntos: 1
Y qué es lo que quieres saber?

Si son iguales?
Si una la primera es mayor que la otra?
__________________
Gustavo Narea.
Venezuela.
  #11 (permalink)  
Antiguo 29/05/2005, 13:29
Avatar de gustavoang  
Fecha de Ingreso: julio-2003
Ubicación: Valencia - Venezuela
Mensajes: 253
Antigüedad: 14 años, 4 meses
Puntos: 1
Tal vez quieras leer éste documento: http://ve.php.net/manual/es/language...comparison.php

Saludos.
__________________
Gustavo Narea.
Venezuela.
  #12 (permalink)  
Antiguo 29/05/2005, 13:33
 
Fecha de Ingreso: mayo-2005
Mensajes: 78
Antigüedad: 12 años, 7 meses
Puntos: 0
quiero saber si una es mayor que otra... se que existen los comparadores == , <= y todo eso, pero kiero saber si para las fechas funciona igual...

Gracias!!!
  #13 (permalink)  
Antiguo 29/05/2005, 13:33
Avatar de gustavoang  
Fecha de Ingreso: julio-2003
Ubicación: Valencia - Venezuela
Mensajes: 253
Antigüedad: 14 años, 4 meses
Puntos: 1
$fecha_actual > $fecha_sql

ó

$fecha_sql > $fecha_actual

Saludos.
__________________
Gustavo Narea.
Venezuela.
  #14 (permalink)  
Antiguo 29/05/2005, 13:35
 
Fecha de Ingreso: mayo-2005
Mensajes: 78
Antigüedad: 12 años, 7 meses
Puntos: 0
pero eso se puede aplicar a las fechas??? Lo probare a ver, pero creo q para fechas abia q acer alguna cosa rara...
  #15 (permalink)  
Antiguo 29/05/2005, 13:42
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
La pregunta es: ¿Para qué necesitas esa comparación?
O sea... ¿Cómo vas a utilizar esa comparación?
Respondiendo a eso te podemos dar una idea bastante más cercana (y con código) de lo que quieres.

¿Leíste algo en el enlace al manual de Mysql que te puse?
Ahí de entrada hay un ejemplo de cómo obtener los registros cuyo campo "fecha" está dentro de los últimos 30 días.

Saludos
  #16 (permalink)  
Antiguo 29/05/2005, 13:44
Avatar de gustavoang  
Fecha de Ingreso: julio-2003
Ubicación: Valencia - Venezuela
Mensajes: 253
Antigüedad: 14 años, 4 meses
Puntos: 1
Cierto.

De hecho, de pendiendo de tu caso, esa comparación la puedes hacer directamente en una consulta SQL y te ahorrarías instrucciones PHP.
__________________
Gustavo Narea.
Venezuela.
  #17 (permalink)  
Antiguo 29/05/2005, 14:14
 
Fecha de Ingreso: mayo-2005
Mensajes: 78
Antigüedad: 12 años, 7 meses
Puntos: 0
A ver, yo simplemente kiero q m devuelva true o false, lo voy a utilizar para comprobar que la fecha de una tarjeta (guardada en la BD) no esta caducada (fecha actual)...

Gracias, y a ver si podeis ayudarme...
  #18 (permalink)  
Antiguo 29/05/2005, 14:22
Avatar de gustavoang  
Fecha de Ingreso: julio-2003
Ubicación: Valencia - Venezuela
Mensajes: 253
Antigüedad: 14 años, 4 meses
Puntos: 1
Ya que es así, no deberías usar "mayor que", sino "mayor o igual que". Y el siguiente código te podría servir:

Código PHP:
if($fecha_actual <= $fecha_vencimiento_tarjeta){
    
#Está vigente
}else{
    
# Está vencida

Saludos.
__________________
Gustavo Narea.
Venezuela.
  #19 (permalink)  
Antiguo 29/05/2005, 14:25
 
Fecha de Ingreso: mayo-2005
Mensajes: 78
Antigüedad: 12 años, 7 meses
Puntos: 0
ok, vale, esta claro, entonces en las fechas se puede usar exactamente los mismos comparadores que siempre, esa era la duda, q no sabia si se podian usar. Muchas gracias a todos por ayudarme... ;) ;) ;)
  #20 (permalink)  
Antiguo 29/05/2005, 14:40
Avatar de gustavoang  
Fecha de Ingreso: julio-2003
Ubicación: Valencia - Venezuela
Mensajes: 253
Antigüedad: 14 años, 4 meses
Puntos: 1
Cita:
Iniciado por CapiCapi
ok, vale, esta claro, entonces en las fechas se puede usar exactamente los mismos comparadores que siempre, esa era la duda, q no sabia si se podian usar. Muchas gracias a todos por ayudarme... ;) ;) ;)
Exacto.

Las puedes comparar si están en el formato YYYY-MM-DD y si están en el formato Timestamp (ya que es un número entero).

De nada.

Saludos.
__________________
Gustavo Narea.
Venezuela.
  #21 (permalink)  
Antiguo 29/05/2005, 15:00
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
De todos modos,te dejo la manera de hacerlo directamente desde el SQL.
Código PHP:
$sql "SELECT * FROM tu_tabla WHERE fecha_expiracion > CURDATE()"
Saludos
  #22 (permalink)  
Antiguo 30/05/2005, 15:14
 
Fecha de Ingreso: mayo-2005
Mensajes: 78
Antigüedad: 12 años, 7 meses
Puntos: 0
la verdad q esto ultimo me gusta bastante mas, y en teorio que habria en $sql?? true o false???

Muchas gracias!!!!
  #23 (permalink)  
Antiguo 30/05/2005, 15:55
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Cita:
Iniciado por CapiCapi
(...)y en teorio que habria en $sql?? true o false???
No entiendo tu pregunta.
$sql es simplemente una cadena que contiene una sentencia sql.
Luego deberás ejecutar esa consulta y obtener los resultados.

Saludos
  #24 (permalink)  
Antiguo 30/05/2005, 18:50
Avatar de gustavoang  
Fecha de Ingreso: julio-2003
Ubicación: Valencia - Venezuela
Mensajes: 253
Antigüedad: 14 años, 4 meses
Puntos: 1
Así es, CapiCapi. Esa instrucción es sólo una cadena en PHP.

Si lo que quieres es saber si existen o no filas en la consulta que está haciendo, te recomiendo usar la función mysql_numrows(). El resultado es la cantidad de filas que coinciden con la consulta realizada, por lo tanto, es un número entero.

Por ejemplo (tomando el código de jpinedo):

Código PHP:
 $sql "SELECT * FROM tu_tabla WHERE fecha_expiracion > CURDATE()";  
if(
mysql_numrows(mysql_db_query($base_de_datos,$sql))>0){
    
# Si hay filas con tu consulta
}else{
    
# Ninguna fila responde a tu consulta

Saludos.

PD: Por alguna extraña razón en la línea 2 del código PHP, la variable $sql aparece como "$sq l". Por lo tanto sabes que tienes que arreglar el código si lo vas a usar.
__________________
Gustavo Narea.
Venezuela.
  #25 (permalink)  
Antiguo 30/05/2005, 22:13
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Cita:
Iniciado por gustavoang
(...) Si lo que quieres es saber si existen o no filas en la consulta que está haciendo, te recomiendo usar la función mysql_numrows().
Solo aclarar que la función correcta es mysql_num_rows() ... www.php.net/mysql_num_rows




Edito y Cito:
Cita:
Iniciado por gustavoang
Por alguna extraña razón en la línea 2 del código PHP, la variable $sql aparece como "$sq l". Por lo tanto sabes que tienes que arreglar el código si lo vas a usar.
No es extraña... lo que pasa es que estás poniendo una "cadena" (texto para el foro) muy larga (no daz espacios)... solucionalo simplemente "cortandola" donde corresponde.

Mal:
Código PHP:
if(mysql_numrows(mysql_db_query($base_de_datos,$sq  l))>0){ 
Bien:
Código PHP:
if( mysql_num_rowsmysql_db_query($base_de_datos$sql))>0) {
// de paso corrijo la función :-D 
(nuevamente)
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"

Última edición por jam1138; 31/05/2005 a las 03:18
  #26 (permalink)  
Antiguo 31/05/2005, 06:52
Avatar de gustavoang  
Fecha de Ingreso: julio-2003
Ubicación: Valencia - Venezuela
Mensajes: 253
Antigüedad: 14 años, 4 meses
Puntos: 1
Cita:
Iniciado por jam1138
Solo aclarar que la función correcta es mysql_num_rows() ... www.php.net/mysql_num_rows

Hola, jam1138:

La función mysql_numrows() es un alias a la función mysql_num_rows()... Ambas existen y hacen lo mismo.

Cita:
Iniciado por jam1138
Edito y Cito:No es extraña... lo que pasa es que estás poniendo una "cadena" (texto para el foro) muy larga (no daz espacios)... solucionalo simplemente "cortandola" donde corresponde.

Mal:
Código PHP:
if(mysql_numrows(mysql_db_query($base_de_datos,$sq  l))>0){ 
Bien:
Código PHP:
if( mysql_num_rowsmysql_db_query($base_de_datos$sql))>0) {
// de paso corrijo la función :-D 
(nuevamente)
Gracias por explicármelo, yo no sabía que eso sucedía en el foro... Tal vez se deba a que estoy usando la interfaz WYSIWYG para escribir los posts, es eso?

Saludos.
__________________
Gustavo Narea.
Venezuela.
  #27 (permalink)  
Antiguo 01/06/2005, 02:35
 
Fecha de Ingreso: mayo-2005
Mensajes: 78
Antigüedad: 12 años, 7 meses
Puntos: 0
Muchas gracias a todos por la gran ayuda sobre este tema, si tengo mas dudas ya os preguntare porque la verdad que es un foro bastante bueno...

Gracias!!!
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 03:24.