内容是这样的,我想弄成像图片那样的格式,不知道要怎么实现,希望有人能指导一下,谢谢!时间                  状态
2011-03-12 15:20      Shipment Collected by Consignee
2011-03-12 15:19      Shipment Held for Consignee Pickup  
2011-03-12 08:34      Consignee Contacted   
2011-03-11 21:05      Shipment Forwarded to Salwa Road,Qatar  
2011-03-11 13:19      Shipment Received at Operations Facility   

解决方案 »

  1.   

    哪里有困难?date('m/d/Y H:i:s A', $timestamp);   A表示AM / PM  和之前记录不同一天date('H:i:s A', $timestamp);    和前一条记录同一天
      

  2.   

    关键是记录上一条的时间状态!<?php
    $data = array(
    array(
    t => '2011-03-12 15:20',
    c => 'Shipment Collected by Consignee',
    ),
    array(
    t => '2011-03-12 15:19',
    c => 'Shipment Held for Consignee Pickup',
    ),
    array(
    t => '2011-03-12 08:34',
    c => 'Consignee Contacted ',
    ),
    array(
    t => '2011-03-11 21:05',
    c => 'Shipment Forwarded to Salwa Road,Qatar',
    ),
    array(
    t => '2011-03-11 13:19',
    c => 'Shipment Received at Operations Facility',
    ),
    );// 记录上一天
    $last_date = '';
    echo "<pre>\n";
    foreach($data as $row) {
    // 如果是时间戳 则省略
    $row['t'] = strtotime($row['t']);  $date = date('m/d/Y', $row['t']);

    if(!$last_date || $last_date != $date) {
    $last_date = $date;
    echo $date;
    } else {
    echo str_repeat(' ', 10);
    } echo "\t", date('H:i A', $row['t']), "\t", $row['c'], "\n";}
    echo "</pre>\n";
      

  3.   

    优化一下,加上时间规则<?php
    $data = array(
    array(
    't' => '2011-03-12 15:20',
    'c' => 'Shipment Collected by Consignee',
    ),
    array(
    't' => '2011-03-12 15:19',
    'c' => 'Shipment Held for Consignee Pickup',
    ),
    array(
    't' => '2011-03-12 08:34',
    'c' => 'Consignee Contacted ',
    ),
    array(
    't' => '2011-03-11 21:05',
    'c' => 'Shipment Forwarded to Salwa Road,Qatar',
    ),
    array(
    't' => '2011-03-11 13:19',
    'c' => 'Shipment Received at Operations Facility',
    ),
    );// 加上根据时间规则的排序
    function sort_map($a1, $a2) {
    // 如果是时间戳 则省略
    $t1 = strtotime($a1['t']);
    $t2 = strtotime($a2['t']); // 计算某天0点0分0秒
    $t1_d = $t1 - $t1 % 86400;
    $t2_d = $t2 - $t2 % 86400; if($t1_d > $t2_d) {
    return -1;
    } elseif($t1_d < $t2_d) {
    return 1;
    } else {
    if($t1 > $t2) {
    return 1;
    } elseif($t1 < $t2) {
    return -1;
    } else {
    return 0;
    }
    }
    }// 加上根据时间规则的排序 最近的天在前,同天的最早发生的在前
    usort($data, 'sort_map');// 记录上一天
    $last_date = '';
    echo "<pre>\n";
    foreach($data as $row) {
    // 如果是时间戳 则省略
    $row['t'] = strtotime($row['t']);  $date = date('m/d/Y', $row['t']);

    if(!$last_date || $last_date != $date) {
    $last_date = $date;
    echo $date;
    } else {
    echo str_repeat(' ', 10);
    } echo "\t", date('H:i A', $row['t']), "\t", $row['c'], "\n";}
    echo "</pre>\n";