How To Process MySQL Timestamp in PHP

By Angsuman Chakraborty, Gaea News Network
Saturday, May 27, 2006

Many of us do not realize that MySQL’s Timestamp is not the timestamp which PHP date() understands. In fact if you try to use MySQL timestamp directly in php date() function then you will get totally wrong dates. There is a simple way to use MySQL timestamp data in php.

First you need to modify the SQL query to use MySQL’s UNIX_TIMESTAMP() function. So if your SQL looks like:
SELECT author, `when` …

then convert it to:
SELECT author, UNIX_TIMESTAMP(`when`) …

Then use PHP’s date() function to convert the unix timestamp to appropriate display format like this:
date(”F j, Y, g:i a”, $row[1])

where $row[1] contains the timestamp column value.

Discussion

g

yossi greenbaum
December 24, 2009: 4:41 pm

I wish I could have found this article a couple of hours ago. It’s awesome!!!!


Karthik
July 30, 2009: 5:42 am

thanks PHPSLAKER !!! it totally worked..

June 23, 2009: 8:18 pm

AGREED WITH PHPSLACKER

June 1, 2009: 8:42 pm

There’s a much easier way

Don’t bother using UNIX_TIMESTAMP(`when`)

You can always do this:

$sPHPDate = date(’whatever format u want’,strtotime($aRowFromDbResult['when']));

strtotime is exceptionally clever it can parse a wide variety of date formats including MySQL’s default date and timestamp format

https://php.net/strtotime


Carlos Jerez
March 20, 2008: 3:06 pm

Aca va una clase que les puede ayudar un poco

class FechasMysql
{
const _formatoTimeStampMysql='Y-m-d H:i:s';
const _formatoFechaMysql='Y-m-d';
const _formatoHoraMysql='H:i:s';
const _separadorFechaHoraMysql=' ';
const _separadorFechaMysql='-';
const _separadorHoraMysql=':';
const _pocisionFechaEnTimestamp=0;
const _pocisionHoraEnTimestamp=1;
const _zonaUtc='America/Bogota';
const _zonaIdioma='esl';

/**
* Convierte el timestamp de unix a timestamp de mysql
*
* @param int[optional] timestamp de unix por defecto el actual
* @return string timestamp de Mysql con formato FechasMysql::_formatoTimeStampMysql
*/
public static function MySqlTimeStamp($unixTimestamp=null)
{
FechasMysql::ConfigurarZona();

if ($unixTimestamp===null)
$unixTimestamp=time();

return date(FechasMysql::_formatoTimeStampMysql,$unixTimestamp);
}

/**
* Convierte el timestamp de unix a time de mysql
*
* @param[optional] int timestamp de unix por defecto el actual
* @return string time de Mysql con formato ‘H:i:s’
*/
public static function MySqlTime($unixTimestamp=null)
{
FechasMysql::ConfigurarZona();

if ($unixTimestamp===null)
$unixTimestamp=time();

return date(FechasMysql::_formatoHoraMysql,$unixTimestamp);
}

/**
* Convierte el timestamp de unix a date de mysql
*
* @param int[optional] timestamp de unix por defecto el actual
* @return string date de Mysql con formato ‘Y-m-d ‘
*/
public static function MySqlDate($unixTimestamp=null)
{
FechasMysql::ConfigurarZona();

if ($unixTimestamp===null)
$unixTimestamp=time();

return date(FechasMysql::_formatoFechaMysql,$unixTimestamp);
}

/**
* Obtiene El string de la fecha
*
* @param int[optional] timestamp de unix por defecto el actual
* @param string[optional] opcion si ‘F’ retorna la fecha, por defecto; de lo contrario Fecha y Hora
* @return string fecha o fecha y hora en una cadena
*/
public static function ObtenerStringFechaUnix($unixTimestamp=null,$opcionString=’F')
{
FechasMysql::ConfigurarZona();

if ($unixTimestamp===null)
$unixTimestamp=time();

if ($opcionString==’F')
return strftime(’ %A, %d de %B de %Y.’ ,$unixTimestamp);
else
return strftime(’ %H:%M del %A, %d de %B de %Y.’ ,$unixTimestamp);

}

/**
* Obtiene El string de la fecha
*
* @param String[optional] timestamp de Mysql por defecto el actual
* @param string[optional] opcion si ‘F’ retorna la fecha, por defecto; de lo contrario Fecha y Hora
* @return string fecha o fecha y hora en una cadena
*/
public static function ObtenerStringFechaMysql($mysqlTimeStamp=null,$opcionString=’F')
{
if ($mysqlTimeStamp===null)
$mysqlTimeStamp=date(FechasMysql::_formatoTimeStampMysql);

$unixTimestamp=FechasMysql::UnixTimeStamp($mysqlTimeStamp);
return FechasMysql::ObtenerStringFechaUnix($unixTimestamp,$opcionString);
}

/**
* Convierte el timestamp de mysql a timestamp de unix
*
* @param string timestamp de Mysql con formato ‘Y-m-d H:i:s’ por defecto el actual
* @return int timestamp de unix
*/
public static function UnixTimeStamp($mysqlTimeStamp)
{
FechasMysql::ConfigurarZona();

$arrayTimestamp=explode(FechasMysql::_separadorFechaHoraMysql, $mysqlTimeStamp);
$arrayFecha = explode(FechasMysql::_separadorFechaMysql,$arrayTimestamp[FechasMysql::_pocisionFechaEnTimestamp]);
$arrayHora=explode(FechasMysql::_separadorHoraMysql,$arrayTimestamp[FechasMysql::_pocisionHoraEnTimestamp]);

return $unixTimesTamp = mktime($arrayHora[0],$arrayHora[1],$arrayHora[2],$arrayFecha[1],$arrayFecha[2],$arrayFecha[0]);
}

private static function ConfigurarZona()
{
//se asegura que la zona horaria adecuada
date_default_timezone_set(FechasMysql::_zonaUtc);
//Pone el idioma
setlocale(LC_TIME,FechasMysql::_zonaIdioma);
}

}

YOUR VIEW POINT
NAME : (REQUIRED)
MAIL : (REQUIRED)
will not be displayed
WEBSITE : (OPTIONAL)
YOUR
COMMENT :