比较mysql和php之间的日期

时间:2012-09-11 01:56:26

标签: php mysql

我想面对一个错误,数据库将日期格式记录为YYYY-MM-DD,下面是表: -

table

第一个表是资金,第二个是基金历史,因为你可以看到LibraIncomeExtra Fund有相同的日期,但它仍然显示明星。 以下是我的编码: -

<?php

$result = mysql_query("SELECT * FROM funds");
$numrows = mysql_num_rows($result);
$getdate = date('y-m-j');
while($row = mysql_fetch_array($result)) 
  {

echo "<tr>";
echo "<td>";
echo "<center>";

if ($row['nav'] != $row['oldnav'])
{

if ($row['date_update'] != $getdate)
{
echo "" .$row['fundname']. "**";
$latestupdate = $row['date_update'];
}

}
else
{
    echo $row['fundname'];

}



echo "</center>";
echo "</td>";
echo "<td>";
echo"<center>";
echo $row['nav'];
echo "</center>";
echo "</td>";
echo "</tr>";


  }
?>

任何人都可以解释这个吗? 我知道mysql扩展已经过时了,但这段编码是很久以前的,所以我不想通过改变mysqli扩展来重做整个系统。

2 个答案:

答案 0 :(得分:2)

我认为你的问题是你如何声明$ getdate

试试这个:     $ getdate = date('Y-m-d');

答案 1 :(得分:0)

我设法通过使用这种编码来解决它:

<?php

$result = mysql_query("SELECT * FROM funds");
$numrows = mysql_num_rows($result);
$getdate = date('Y-m-d');

while($row = mysql_fetch_array($result)) 
  {

echo "<tr>";
echo "<td>";
echo "<center>";

if ($row['date_update'] == $getdate)
{
    echo "" .$row['fundname']. "**";
    $latestupdate = $row['date_update'];
}

else
{
    echo $row['fundname'];
}


echo "</center>";
echo "</td>";
echo "<td>";
echo"<center>";
echo $row['nav'];
echo "</center>";
echo "</td>";
echo "</tr>";




 }
?>

它显示星的原因是因为正在检查每行的使用时间,因为你参考我之前做的顶部编码,它满足两个语句,这需要导航和旧导航是不同的,这是真的根据表格,接下来是关于表格资金的数据库的日期和$ getdate的当前日期,这两者也是不同的,导致两个语句都为真并执行if语句编码。对于我来说,如果不在if条件下看错,那对我来说有点愚蠢。感谢firestream提供$ getdate解决方案。而我犯了一个错误,基金历史表没有涉及此错误。

这是一个棘手的问题:D 干杯!