如何在数组中调整日期格式?

时间:2013-04-16 03:00:38

标签: php mysql arrays

我无法弄清楚如何仅隔离从MYSQL中提取所有键的数组中的Date变量。我想让它格式化为%M%d。如何将它从$ dataFields数组中拉出来修改它然后把它放回去?关键是“日期”。

include('include/connect.php');

$table='currentJobs';

$sql="SELECT * FROM `".$table."`";
$result=mysql_query($sql,$dbLink);

$data=array();
$d=0;
while($row=mysql_fetch_assoc($result)){
    $dataFields=array();

    while(list($key,$value)=each($row)){
        $dataFields[]='<td class="'.$key.'" >'.$row[$key].'</td>';
        if ($d==0){
            $dataKeys[]='<th class="'.$key.'" >'.$key.'</th>';
        }
    }

    if ($d==0){
        $data[$d]='<tr>'.join('',$dataKeys).'<th class="actions">Actions</th></tr>';
        $d++;
    }   

    $data[$d]='<tr>'.join('',$dataFields).'<td>
        <a href="update.php?id='.$row['id'].'">Update</a></td></tr>';
    $d++;
}
mysql_free_result($result);

if ($d>0){
    echo '<table class="sortable">'.join('',$data).'</table>';
}
else {
    echo 'Sorry, data was not found';
}

mysql_close($dbLink);

目前显示:

Date    Name    Phone   Bike_Year   Bike_Model  Current_Status  Service_Type ▴  Mechanic    Revenue Notes   Actions
0000-00-00  Test User   206-555-5555    2001    FLHRI   Checked In  Spec Service Interval   Johhny  840.30      Update

2 个答案:

答案 0 :(得分:0)

这种方法效率低于仅按照JOE LEE的建议修改SQL中的格式。但无论哪种方式都有效,无论你喜欢哪种方式都应该有效。

if($key == 'Date'){
    $dataFields[]='<td class="'.$key.'" >'.date('M d',strtotime($row[$key])).'</td>';
} else {
    $dataFields[]='<td class="'.$key.'" >'.$row[$key].'</td>';
}

或压缩:

$dataFields[] = $key == 'Date' ? date('M d',strtotime($row[$key])) : $row[$key];

在这里查看日期格式选项: http://us1.php.net/manual/en/function.date.php

答案 1 :(得分:0)

$sql="SELECT 
    date_format(date, '%M %d') AS date,
    Name,Phone,Bike_Year,Bike_Model,Current_Status  Service_Type,Mechanic,Revenue,Notes
FROM `".$table."`";