Buen día y gracias por responder EFENOLLAL!
De hecho en la base de datos el campo date si está guardando año-mes-dia (en ese mismo orden que lo puse).
Ya había intentado modificar el preg_match pero en realidad ni siquiera estaba seguro de que fuera ahí donde tuviera que modificar, esa función no la conocía y aunque he leído desde la mañana que me respondiste no terminé de entender.
Además lo de las fechas siempre se me ha complicado.
Sin embargo a medio día pude resolverlo después de intentar e intentar.
Cabe aclarar que aún no lo comprendo del todo, pero ya salí del paso y seguiré estudiando cada que se pueda.
Muchas gracias por haberme orientado EFENOLLAL, y si acaso llegas a tener tiempo y ánimo de explicarme un poco más al respecto, te lo voy a agradecer también.
El código quedó así:
Código PHP:
function put_dates_select ($tname){
$tlist = mysql_list_tables($tname);
while ($row = mysql_fetch_row($tlist)) {
$query = "SELECT DISTINCT `date` FROM ".$row[0];
$result = mysql_query($query) or die ("Error info:<br> $query<br>". mysql_error());
while ($row1 = mysql_fetch_row($result)) {
preg_match ("/^(.*).*?$/", $row1[0], $m);
$dates[$m[1]] += 1;
}
}
if (is_array($dates)){
mysql_free_result($result);
ksort($dates);
echo "Balance por rango de fechas en formato <b>año-mes-dia</b>: <select name=date_begin><option value=>Begin</option>";
foreach ($dates as $k => $v){
preg_match ("/^(.*)$/", $k, $m);
if ($_SESSION[date_begin] == $k) {$selected = "selected";}else{$selected = "";}
echo "<option value=$k $selected>".substr($m[1],0)."</option>";
}
echo "</select> - ";
echo "<select name=date_end><option value=>End</option>";
foreach ($dates as $k => $v){
preg_match ("/^(.*)$/", $k, $m);
if ($_SESSION[date_end] == $k) {$selected = "selected";}else{$selected = "";}
echo "<option value=$k $selected>".substr($m[1],0)."</option>";
}
echo "</select> <input type=submit name=date_set value=Set style='font-size:9px'>";
return $dates;
}
}
Aquí explico lo que yo entendí:
*-Según yo aquí
Código PHP:
preg_match ("/^(.*)-.*?$/", $row1[0], $m);
el preg_match está jalando la fecha de la base de datos pero según creo, el guión medio está restando ó quitando el día, es decir, ese guión medio provoca que el preg_match solo tome el mes y el año, por lo cual eliminé el guión y quedó así
Código PHP:
preg_match ("/^(.*).*?$/", $row1[0], $m);
*-Según yo, ya en el selector de fecha inicial y final, el preg_match que aparece así
Código PHP:
preg_match ("/^(.*)-(.*)$/", $k, $m);
con el guión también está restando el día, entonces eliminé el guión y los paréntesis con su contenido y quedó así
Código PHP:
preg_match ("/^(.*)$/", $k, $m);
*-Ya para imprimirlo no entendí bien tampoco, pero me quedó así
Código PHP:
echo "<option value=$k $selected>".substr($m[1],0)."</option>";
Total que me sirvió y la fecha la imprime 2013-09-09, aunque me hubiera gustado ponerla al revés, dia-mes-año.
Si hay comentarios ú observaciones se los voy a agradecer.
Saludos y gracias!