2011-12-22 54 views
1
$columns = array('mon','thu','wed','tue', 'fri', 'sat', 'sun'); 
$num_cols = count($columns); 
echo "<table>"; 
echo "<tr>"; 
foreach($columns as $col) 
{ 
    echo "<td>$col</td>"; 
    for($i=1;$i<20;$i++) 
{ 
    echo "<tr>"; 
    $datetime = new DateTime(); 
    for($j=0;$j<$num_cols;$j++){ 
     $datetime->modify('+30 minutes'); 

     echo '<td>' . $datetime->format('H:i:s') . '</td>'; 
    } 

    echo "</tr>"; 
} 
} 
echo "</tr>"; 

echo "</table>"; 

我怎麼能修改此爲:簡單的日曆 - 天+小時

mon  | thu  etc 
10:10:10 | 10:10:10 
10:40:10 | 10:40:10 
11:10:10 | 11:10:10 
etc 

現在這種惡劣的工作。我想創建簡單的日曆。這爲我生成了一天的許多小時。 感謝您的幫助!

編輯: 如果這只是我只能使用一個循環 - 與小時 - 沒有$列。但我怎麼能做到這一點?

我想獲得:

10:10:10 | 10:10:10 etc 
10:40:10 | 10:40:10 
11:10:10 | 11:10:10 
etc 

$ datetime->格式( 'YMD H:I:S') :)我不知道我可以證明這是列 - 從頂部下來,而不是從左至右

+0

如果你不打算修改DOM,你需要改變你的邏輯和生成此表每行而不是每列。 - 循環的時間,而不是日子。 – Smamatti 2011-12-22 10:04:29

+0

你能解釋一下你的問題嗎?我不明白 – RageZ 2011-12-22 10:05:24

+0

@Smamatti我怎麼能做到這一點?請給我例:) – 2011-12-22 10:07:33

回答

2
<?php 

$columns = array('mon','thu','wed','tue', 'fri', 'sat', 'sun'); 
$num_cols = count($columns); 
$col = 0; 
$datetime = new DateTime(); 

echo "<table>"; // border=\"1\" for visible border 

// Day header 
echo "<tr>"; 
foreach($columns as $col) { 
    echo "<td>$col</td>"; 
} 
echo "</tr>"; 


// Times 
for($i=0; $i<20; $i++) { // FIXME for more entries or other step width 
    echo "<tr>"; 
    $datetime->modify('+30 minutes'); 

    for ($j=0; $j<$num_cols; $j++) 
     echo '<td>' . $datetime->format('H:i:s') . '</td>'; 

    echo "</tr>"; 
} 

echo "</table>"; 

?> 

Output