2011-12-22 53 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