2
0
forked from Wavyzz/dolibarr

Ajout fonction qdate qui fait l'inverse de pdate.

La fonction pdate convertit une date via une fonction du sgbd, la fonction idate fait l'inverse mais via php. Si les timezone different, l'inversion n'est pas exacte. La fonction qdate est un eequivalent de idate php mais par le sgbd, ainsi elle remplace avantageusement idate car l'inversion est toujours exacte.
This commit is contained in:
Laurent Destailleur
2005-09-04 01:48:09 +00:00
parent 7a5d251805
commit 470939b260
2 changed files with 80 additions and 19 deletions

View File

@@ -434,24 +434,35 @@ class DoliDb
/** /**
\brief Formatage par la base de donn<6E>es d'un champ de la base au format Timestamp ou Date (YYYY-MM-DD HH:MM:SS) \brief Formatage (par la base de donn<6E>es) d'un champ de la base au format tms ou Date (YYYY-MM-DD HH:MM:SS)
afin de retourner une donn<6E>e toujours au format universel date tms unix. afin de retourner une donn<6E>e toujours au format universel date tms unix.
\param fname \param param
\return date \return date date au format tms.
*/ */
function pdate($fname) function pdate($param)
{ {
return "unix_timestamp($fname)"; return "unix_timestamp(".$param.")";
} }
/** /**
\brief Formatage de la date en fonction des locales. \brief Formatage (par la base de donn<6E>es) d'un champ de la base au format tms
\param fname afin de retourner une donn<6E>e au format text YYYYMMDDHHMMSS.
\param param
\return string date au format text YYYYMMDDHHMMSS.
*/
function qdate($param)
{
return "from_unixtime(".$param.")";
}
/**
\brief Formatage (par PHP) de la date en texte.
\param param
\return date \return date
*/ */
function idate($fname) function idate($param)
{ {
return strftime("%Y%m%d%H%M%S",$fname); return strftime("%Y%m%d%H%M%S",$param);
} }

View File

@@ -21,7 +21,6 @@
* *
* $Id$ * $Id$
* $Source$ * $Source$
*
*/ */
/** /**
@@ -35,6 +34,7 @@
\version $Revision$ \version $Revision$
*/ */
/** /**
\class DoliDb \class DoliDb
\brief Classe permettant de g<>r<EFBFBD>r la database de dolibarr \brief Classe permettant de g<>r<EFBFBD>r la database de dolibarr
@@ -51,6 +51,7 @@ class DoliDb
var $database_selected; // 1 si base s<>lectionn<6E>, 0 sinon var $database_selected; // 1 si base s<>lectionn<6E>, 0 sinon
var $database_name; // Nom base s<>lectionn<6E>e var $database_name; // Nom base s<>lectionn<6E>e
var $transaction_opened; // 1 si une transaction est en cours, 0 sinon var $transaction_opened; // 1 si une transaction est en cours, 0 sinon
var $lastquery;
var $ok; var $ok;
var $error; var $error;
@@ -422,24 +423,35 @@ class DoliDb
/** /**
\brief Formatage par la base de donn<6E>es d'un champ de la base au format Timestamp ou Date (YYYY-MM-DD HH:MM:SS) \brief Formatage (par la base de donn<6E>es) d'un champ de la base au format tms ou Date (YYYY-MM-DD HH:MM:SS)
afin de retourner une donn<6E>e toujours au format universel date tms unix. afin de retourner une donn<6E>e toujours au format universel date tms unix.
\param fname \param param
\return date \return date date au format tms.
*/ */
function pdate($fname) function pdate($param)
{ {
return "unix_timestamp($fname)"; return "unix_timestamp(".$param.")";
}
/**
\brief Formatage (par la base de donn<6E>es) d'un champ de la base au format tms
afin de retourner une donn<6E>e au format text YYYYMMDDHHMMSS.
\param param
\return string date au format text YYYYMMDDHHMMSS.
*/
function qdate($param)
{
return "from_unixtime(".$param.")";
} }
/** /**
\brief Formatage de la date en fonction des locales. \brief Formatage (par PHP) de la date en texte.
\param fname \param param
\return date \return date
*/ */
function idate($fname) function idate($param)
{ {
return strftime("%Y%m%d%H%M%S",$fname); return strftime("%Y%m%d%H%M%S",$param);
} }
@@ -543,6 +555,44 @@ class DoliDb
return $this->results; return $this->results;
} }
function setLastQuery($s)
{
$this->lastquery=$s;
}
/**
\brief Renvoie toutes les donn<6E>es comme un tableau.
\param sql Requete sql
\param datas Tableau de donn<6E>es pour retour
\return int >0 si ok, <0 si ko
*/
function fetch_all_rows($sql, &$datas)
{
$datas = array();
$resql = $this->query($sql);
if ($resql)
{
$i = 0;
$num = $this->num_rows($resql);
while ($i < $num)
{
$row = $this->fetch_row($resql);
array_push($datas, $row[0]);
$i++;
}
}
else
{
print $this->error();
return -1;
}
return 1;
}
} }
?> ?>