elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  [DUDA] Manejar timestamp
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [DUDA] Manejar timestamp  (Leído 1,895 veces)
DarK_FirefoX


Desconectado Desconectado

Mensajes: 1.263


Be the change you wanna see in te world


Ver Perfil
[DUDA] Manejar timestamp
« en: 3 Abril 2015, 17:41 pm »

Tengo una duda que no logro ver como resolver.

Explico, tengo una tabla en una base de datos MySQL donde tengo un campo de tipo timestamp, cuyo valor para DEFAULT es CURRENT_TIMESTAMP. Todo bien hasta ahora, ahi se almacena un valor así: 2015-03-31 14:21:00.

El problema es que quiero usar eso por decirlo de alguna manera para mostrarlo como una fecha, digámos que quiero de ahi saber(separar) el día, mes, año y la hora para luego mostrarla como una fecha así: Martes 31 de Marzo de 2015 a las 14:21:00.

Digámos que tengo:

Código
  1. $row = $result->fetch_assoc();
  2. $message_date = $row['message_date']; //Aquí tengo el valor 'timestamp'
  3.  

Pero, esto no me devuelve un valor numérico correcto, creo que me lo devuelve en forma de string (según var_dump())

Por lo tanto al utilizar la función:

Código
  1. echo date("Y", $message_date);

Citar
Notice: A non well formed numeric value encountered in F:\System\Archivos de programa\XAMPP\htdocs\questions\functions\users.php on line 216

1970

Donde 1970 es el valor que muestra. Por lo que puedo decir que me falta hacerle algo a la variable $message_date. Intente utilizando

Código
  1. echo date("Y", (int)$message_date);

Me quita la Notificación, pero sigue dando 1970

Voy a crear una función que tendrá unos arrays con los meses y días, pero necesito saber como manipular correctamente este "timestamp" de MySQL en PHP.

Alguien me puede ayudar. Saludos

PD: Tengo PHP/5.4.7

Modifico: Estaba pensando y me surgió la siguiente pregunta: ¿Sería mejor cambiar el tipo de dato del campo en la tabla a DateTime?


« Última modificación: 3 Abril 2015, 17:52 pm por DarK_FirefoX » En línea

EFEX


Desconectado Desconectado

Mensajes: 1.171


"Dinero Facil"


Ver Perfil WWW
Re: [DUDA] Manejar timestamp
« Respuesta #1 en: 3 Abril 2015, 18:04 pm »

Código
  1. $time =  new DateTime($row['message_date']);
  2. echo date_format($test, 'Y');

Si no me equivoco.. y de hay le das el formato.


En línea

DarK_FirefoX


Desconectado Desconectado

Mensajes: 1.263


Be the change you wanna see in te world


Ver Perfil
Re: [DUDA] Manejar timestamp
« Respuesta #2 en: 3 Abril 2015, 18:27 pm »

Muchas gracias, lo solucione utilizando la siguiente función:

Código
  1. date_parse($message_date);

Esta función funciona de la siguiente manera:

Código
  1. <?php
  2. print_r(date_parse("2006-12-12 10:00:00.5"));
  3. ?>

Devuelve:

Citar
Array
(
    [year] => 2006
    [month] => 12
    [day] => 12
    [hour] => 10
    [minute] => 0
    [second] => 0
    [fraction] => 0.5
    [warning_count] => 0
    [warnings] => Array()
    [error_count] => 0
    [errors] => Array()
    [is_localtime] =>
)

Exactamente lo que quería hacer.

De todas formas voy a probar lo que dices EFEX

En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: [DUDA] Manejar timestamp
« Respuesta #3 en: 3 Abril 2015, 21:29 pm »

Puedes obtener el timestamp numerico si usas UNIX_TIMESTAMP en tu query.

Código
  1. SELECT UNIX_TIMESTAMP(message_date) FROM tabla

De ahi puedes darle el formato que tu quieras con date. Si solo quieres sacar el año:

Código
  1. SELECT YEAR(message_data) FROM tabla
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda para manejar variables cuando 'register_globals=off' !! « 1 2 3 »
PHP
Diabliyo 28 12,537 Último mensaje 13 Noviembre 2007, 16:15 pm
por Diabliyo
SQL timestamp
Bases de Datos
OssoH 1 4,287 Último mensaje 27 Noviembre 2009, 00:14 am
por seba123neo
PHP... Guardando un timestamp
Bases de Datos
dimitrix 4 6,586 Último mensaje 18 Julio 2011, 15:04 pm
por dimitrix
timestamp de 10 dígitos... « 1 2 »
Bases de Datos
dimitrix 10 7,041 Último mensaje 23 Enero 2015, 17:45 pm
por dimitrix
DUDA Como manejar un coche de manera tele-dirigida con C AYUDA! « 1 2 »
Electrónica
GutiD 10 9,061 Último mensaje 20 Julio 2015, 21:29 pm
por GutiD
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines