2010-09-03 12 views
-1

Quelqu'un peut-il me montrer comment changer ce timbre de date et l'imprimer dans une table html?date de mise en forme chaîne pour html table

J'ai un fichier d'entrée avec ce format de l'horodatage:

4-Start=20100901180002 

Ce format de temps est stocké comme celui-ci dans un tableau. imprimer le tableau comme pour ainsi créer une table html:

foreach ($data as $row){ 
    $counter ++;           
    $class = $counter % 2 === 0 ? 'alt1' : 'alt2';  
    echo '<tr class="' . $class . '">';     

    foreach ($keys as $column)     
     if (isset($row[$column])){    
      echo '<td>' . $row[$column]; 
      } else { 
      echo '<td>' . '' . '</td>'; 
     } 
} 
echo '</table>'; 

Comment puis-je changer l'horodatage dans ce tableau à cela? 2010-09-01 18:00:02

+0

-1 pour duper très récent. Évidemment n'a pas cherché d'abord. –

Répondre

2

Voici ce que vous cherchez, http://de2.php.net/manual/en/function.strtotime.php

Il y a une question similaire, vous pouvez obtenir plus de contributions de là aussi .. How do I format the date and time That is received from database

EDIT: Oui vous pouvez utiliser un écho aussi bien

echo date("Y-m-d H:i:s",strtotime('20100901180002')) ; // 2010-09-01 18:00:02 

Vous pouvez même utiliser createFromFormat comme RC dit, est d'utiliser createFromFormat à st procédure yle.

$date = date_create_from_format("YmdHis", '20100901180002'); 
echo date_format($date, 'Y-m-d H:i:s'); // 2010-09-01 18:00:02 

Se reporter à http://php.net/manual/en/datetime.createfromformat.php

+0

puis-je mettre cette fonction dans une déclaration d'écho pour imprimer dynamiquement? – jdamae

+0

La réponse est éditée. – satya

+0

ok, merci chanceux. Je suis juste confus où l'incorporer en utilisant les balises ''. – jdamae

1

Cette partie est étrange, le elseif est jamais atteinte à mon avis.

if (isset($row[$column])){ 
    echo '<td>' . $row[$column] . '</td>'; 
} elseif ($column == 'Condition') { 
    echo '<td> Error </td>'; 
} else { 
    echo '<td> </td>'; 
} 

En ce qui concerne votre question de format:

// PHP > 5.2 
$date_s = "" . $row['Start']; 
$date = DateTime::createFromFormat("YmdHis", $date_s); 
echo $date->format("Y-m-d H:i:s"); // 2010-09-01 18:00:02 
+0

merci RC. J'ai nettoyé cette condition (voir ma modification). En ce qui concerne la mise en forme, est-ce que j'intégrerais '$ date_s' dans les balises' ', comme je l'ai fait dans mon foreach? Merci encore. – jdamae

+0

Non, vous devez utiliser '$ date-> format (...)' dans votre TD. (note: un ' 'est maintenant manquant dans votre question) –