2014-10-01 36 views
0

即时通讯使用David Walsh PHP日历,并且在修改完毕后它再次完美工作,但我遇到了一个问题,我无法修复自己,每个月10不出现...PHP,MySql - 旧日历不会在每个月的第10天显示事件

这是一个问题之前与几个月,但我无法解决这个..这是一个INT的问题,不能'01'或'02',但总是会是'1'和'2'

您可以看到日历在www.proxin.nl/nologin/,2014年10月9日和10日有活动,代码如下,请问您可以向正确的方向推?

感谢, 丹尼斯

<?php 
include 'config.php'; 
function draw_calendar($month,$year,$events = array()){ 
    /* draw table */ 
    $calendar = '<table cellpadding="0" cellspacing="0" class="calendar">'; 
    /* table headings */ 
    $headings = array('Zondag','Maandag','Dinsdag','Woensdag','Donderdag','Vrijdag','Zaterdag'); 
    $calendar.= '<tr class="calendar-row"><td class="calendar-day-head">'.implode('</td><td class="calendar-day-head">',$headings).'</td></tr>'; 
    /* days and weeks vars now ... */ 
    $running_day = date('w',mktime(0,0,0,$month,1,$year)); 
    $days_in_month = date('t',mktime(0,0,0,$month,1,$year)); 
    $days_in_this_week = 1; 
    $day_counter = 0; 
    /* row for week one */ 
    $calendar.= '<tr class="calendar-row">'; 
    /* print "blank" days until the first of the current week */ 
    for($x = 0; $x < $running_day; $x++){ 
     $calendar.= '<td class="calendar-day-np">&nbsp;</td>'; 
     $days_in_this_week++; 
    } 

    /* keep going with days.... */ 
    for($list_day = 1; $list_day <= $days_in_month; $list_day++){ 
     $calendar.= '<td class="calendar-day">'; 
     /* add in the day number */ 
     $calendar.= '<div class="day-number">'.$list_day.'</div>'; 
     $event_day = $year.'-'.$month.'-'.$list_day; 

     if(isset($events[$event_day])) { 
      foreach($events[$event_day] as $event) { 
       $calendar.= '<div class="event"><a href="?event='.$event['id'].'">'.$event['bedrijfsnaam'].'<span>'.$event['tijdvan'].' - '.$event['tijdtot'].'</span></a></div>'; 
      } 

     } else { 
      $calendar.= str_repeat('',2); 
     } 

     $calendar.= '</td>'; 

     if($running_day == 6){ 
      $calendar.= '</tr>'; 

      if(($day_counter+1) != $days_in_month){ 
       $calendar.= '<tr class="calendar-row">'; 
      } 

      $running_day = -1; 
      $days_in_this_week = 0; 
     } 

     $days_in_this_week++; 
     $running_day++; 
     $day_counter++; 
    } 

    /* finish the rest of the days in the week */ 

    if($days_in_this_week < 8){ 
     for($x = 1; $x <= (8 - $days_in_this_week); $x++){ 
      $calendar.= '<td class="calendar-day-np">&nbsp;</td>'; 
     } 

    } 

    /* final row */ 
    $calendar.= '</tr>'; 
    $calendar.= '</table>'; 
    return $calendar; 
} 

?> 
<link rel="stylesheet" href="css/foundation.css" /> 
<link rel="stylesheet" href="css/style.css" /> 
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script> 
<script src="js/bPopup.js"></script> 
<script type="text/javascript" src="js/hamburger.js"></script> 

<div class="row"> 
<div class="large-12 medium-12 panel columns"> 
    <?php 
// date settings 
    $month = (int) (isset($_GET['month']) ? $_GET['month'] : date('m')); 
    $year = (int) (isset($_GET['year']) ? $_GET['year'] : date('Y')); 
    if($month < 10){ 
     $month = '0'.$month; 
    } 
    // select month control 
    $select_month_control = '<select name="month" id="month">'; 
    for($x = 1; $x <= 12; $x++){ 
     $select_month_control.= '<option value="'.$x.'"'.($x != $month ? '' : '  selected="selected"').'>'.date('F',mktime(0,0,0,$x,1,$year)).'</option>'; 
} 
$select_month_control.= '</select>'; 
// select year control 
$year_range = 7; 
$select_year_control = '<select name="year" id="year">'; 
for($x = ($year-floor($year_range/2)); $x <= ($year+floor($year_range/2)); $x++) { 
    $select_year_control.= '<option value="'.$x.'"'.($x != $year ? '' : 'selected="selected"').'>'.$x.'</option>'; 
} 
$select_year_control.= '</select>'; 
// bringing the controls together 
$controls = '<form method="get">'.$select_month_control.$select_year_control.'<input type="submit" name="submit" class="button" value="Gaan!"></form>'; 
// get all events for the given month 
$result = mysqli_query($con, "SELECT bedrijfsnaam, TIME_FORMAT(tijdvan, '%H:%i') as tijdvan, TIME_FORMAT(tijdtot, '%H:%i') as tijdtot, id, DATE_FORMAT(datum,'%Y-%m-%d') AS datum FROM reserveringen WHERE datum LIKE '$year-$month%' ORDER BY tijdvan") or die('cannot get results!'); 
while($row = mysqli_fetch_assoc($result)){ 
    $events[$row['datum']][] = $row; 
} 
echo '<div class="center"><a class="databefore" href="?month='.($month != 1 ? $month - 1 : 12).'&year='.($month != 1 ? $year : $year - 1).'" class="control">&lt;</a>'; 
echo '<caption>'.date('F',mktime(0,0,0,$month,1,$year)).' '.$year.'</caption>'; 
echo '<a class="dataafter" href="?month='.($month != 12 ? $month + 1 : 1).'&year='.($month != 12 ? $year : $year + 1).'" class="control">&gt;</a></div>'; 
echo '<div class="controls">'.$controls.'</div>'; 
echo draw_calendar($month,$year,$events); 
?> 

和config.php文件:

<?php 

$host="localhost"; 
$username="agenda2"; 
$password="agenda2"; 
$db_name="agenda2"; 

$con=mysqli_connect("$host", "$username", "$password", "$db_name")or die("cannot connect"); 

回答

0

像你说的,你需要的月和日前导零。对我来说,看起来像行

$event_day = $year.'-'.$month.'-'.$list_day; 

是什么导致的错误。 2014年10月9日将使$ event_day为2014-10-9,而不是2014-10-09。你可以尝试做

$event_day = sprintf('%d-%02d-%02d', $year, $month, $list_day); 

$event_day = date('Y-m-d', mktime(0,0,0,$month,$list_day,$year));