ID: 30898
User updated by: jap1968 at yahoo dot es
Reported By: jap1968 at yahoo dot es
Status: Open
Bug Type: Sybase (dblib) related
Operating System: Linux (RedHat 9)
PHP Version: 4.3.8
New Comment:
"Expected" and "Actual" are interchanged. Sorry for the mistake!
Previous Comments:
------------------------------------------------------------------------
[2004-11-25 17:33:54] jap1968 at yahoo dot es
Description:
------------
When using a LC_TIME locale which do represent time in 0..24h manner in
spite of using AM/PM, wrong results are obtained.
Results are always in the range 0..11, so if the time corresponds to a
PM hour, the returned result is wrong. It does not correspond with the
real value stored in the database!
Reproduce code:
---------------
// Asking a MS_SQLServer through FreeTDS + Sybase functions
$linkBD = sybase_connect("SGBD", "user", "pass");
sybase_select_db("BD", $linkBD);
$query = "select fecha from table";
/* RIGHT */
setlocale (LC_TIME, "en_US"); // Returns correct time
$res = sybase_query($query, $linkBD);
if ($fila = sybase_fetch_array($res)) {
$fecha = $fila['fecha'];
echo 'en_US'.$fecha;
}
/* WRONG */
setlocale (LC_TIME, "es_ES"); // Returns wrong time
$res = sybase_query($query, $linkBD);
if ($fila = sybase_fetch_array($res)) {
$fecha = $fila['fecha'];
echo 'es_ES'.$fecha;
}
sybase_close($linkBD);
Expected result:
----------------
en_US:NOV 25 2004 01:00PM
es_ES:nov 25 2004 01:00
Actual result:
--------------
en_US:NOV 25 2004 01:00PM
es_ES:nov 25 2004 13:00
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=30898&edit=1