PHP表中的unix时间行到正常时间

时间:2013-01-12 19:39:25

标签: php html unix-timestamp

我从下拉列表中查找了一个php。这将查找特定员工的时间卡的更改并返回到表格。工作得很好但我无法从第2行和第5行和第7行返回结果以显示实时不是unix时间,2表示日期生效,5表示请求日期,7表示批准/更改日期。 这是我正在使用的代码。

<table border="1" width="75%" cellpadding="2" cellspacing="0">
<tr>
<td align="center">Date Effected</td>
<td align="center">Status requested</td>
<td align="center">Requested by</td>
<td align="center">Date requested</td>
<td align="center">Amended by</td>
<td align="center">Date amended</td>
</tr>
<?php
$host = "host";
$user = "USER";
$pass = "PWORD";
$dbname = "DB";
$loc = $fgmembersite->UserLocation();
$term = $_GET['button'];
$connection = mysql_connect($host,$user,$pass) or die (mysql_errno().":    ".mysql_error()."<BR>");
mysql_select_db($dbname);
$query= "select * from $loc where User_id=$term";
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
while ($line = mysql_fetch_row($result) )
{
echo '<tr>';
echo '<td align="center">'.$line[2].'</td>';
echo '<td align="center">'.$line[3].'</td>';
echo '<td align="center">'.$line[4].'</td>';
echo '<td align="center">'.$line[5].'</td>';
echo '<td align="center">'.$line[6].'</td>';
echo '<td align="center">'.$line[7].'</td>';
echo '</tr>';
}
?>
</table>

任何帮助都感激不尽。提前致谢

3 个答案:

答案 0 :(得分:0)

首先,停止使用mysql_个功能。它们不再被维护and are officially deprecated。请参阅red box?了解prepared statements,因为您的代码容易受到SQL注入攻击并使用PDOMySQLi - this article将帮助您确定哪些代码。

如果我理解正确,您将日期存储为unix时间戳并需要转换它。它可以用MySQL或PHP完成。

使用MySQL,您可以使用FROM_UNIXTIME()

mysql> SELECT FROM_UNIXTIME(1196440219);
    -> '2007-11-30 10:30:19'

Manual

使用PHP,您可以使用date

echo date("F j", 1196440219);
   //November 30

Manual

我还建议您在查询中指定列列表,并使用这些列而不是索引值。

答案 1 :(得分:0)

我是否误解了或者您是否正在寻找日期功能?如果是这样,试试这个:

while ($line = mysql_fetch_row($result) )
{
echo '<tr>';
echo '<td align="center">'.date("d-m-Y", $line[2]).'</td>';
echo '<td align="center">'.$line[3].'</td>';
echo '<td align="center">'.$line[4].'</td>';
echo '<td align="center">'.date("d-m-Y", $line[5]).'</td>';
echo '<td align="center">'.$line[6].'</td>';
echo '<td align="center">'.date("d-m-Y",$line[7]).'</td>';
echo '</tr>';
}

此功能记录在此处:http://php.net/manual/en/function.date.php

答案 2 :(得分:0)

您可以在PHP级别或MySQL级别上执行此操作

在PHP中,您可以使用格式创建日期,PHP中的DateTime类非常方便/灵活

// add this function to your script
function convertUnixTime($timeStamp) {
    $date = date_create_from_format('U', $timeStamp);

    // check the php docs for different ways you can format dates
    return date_format($date, 'm-d-Y');
}

// then update your echo statements 
echo '<td align="center">'.convertUnixTime($line[7]).'</td>';

有关详细信息,请参阅DateTime->format docs