【问题标题】:Jquery FullCalendar Make event occur on specific dayJquery FullCalendar 使事件在特定日期发生
【发布时间】:2013-04-14 21:44:13
【问题描述】:

我正在使用 Jquery FullCalendar http://arshaw.com/fullcalendar/docs/event_data/events_json_feed/

尝试设置每周发生的事件。

In my database its stored as
DayOfTheWeek 1 (1-5 specifies monday to firday)
StartTime 10:00:00
EndTime 13:00:00

无论如何我可以将其转换为 Fullcalendar Event 对象吗?

events: [{
        title: 'Event One',
        id: 1,  
        start: Monday 10AM,
        end: Monday 1PM
    },
    {
        title: 'Event Two',
        id: 2, 
        start: Tuesday 10AM,
        end: Tuesday 5pm
    },
    ]

【问题讨论】:

  • 这是只读显示吗?
  • 是只读显示
  • 您使用什么服务器语言?如果您打算将插件事件映射到服务器 url,可能最容易在此处进行操作
  • 我的数据库是 MySQL,我正在使用 PHP 脚本将 json 信息发送到日历。

标签: javascript jquery fullcalendar


【解决方案1】:

这个 php 代码应该可以帮助您:

/* create this array from SQL query*/
$events=array(
    array('title'=>'Event One', 'day'=>2, 'startTime'=> '10:00:00', 'date'=>getFirstOfMonthDate(2)),
    array('title'=>'Event Two', 'day'=>4, 'startTime'=> '13:00:00' ,'date'=>getFirstOfMonthDate(4))

);
/* number of weeks to generate*/
$num_weeks=10;
/* calling this function outputs recurring events JSON*/
createRecurringEventsJSON( $events, $num_weeks);


/* functions*/
function createRecurringEventsJSON( $events, $num_weeks){
    $output=array();

    for($i=0;$i<$num_weeks;$i++){
      for($j=0; $j< count($events) ;$j++){
          $output[]= createEvent($events[$j]['date'],$events[$j]['title'],$events[$j]['startTime']);
          $events[$j]['date']=datePlusOneWeek($events[$j]['date']);
      }
    }
    echo json_encode($output);

}

function datePlusOneWeek($date){
    return date('Y-m-d',strtotime ( '+1 week' , strtotime ( $date ) ));

}


function getFirstOfMonthDate( $dayNumber){
    /* first is blank so index 1 =Monday, 5=Friday*/
    $days=array('','Monday','Tuesday','Wednesday','Thursday','Friday');
    $fullMonthText=date('F');
    $dayText=$days[$dayNumber];
    $year = date('Y');
    /* strtotime accepts "first Monday of December 2013" format*/
    $textString='first '.$dayText.' of '.$fullMonthText.' '.$year;
    return date('Y-m-d', strtotime($textString));

}


/* returns calendar event object*/
function createEvent($date,$title,$time){
   return array('title'=>$title, 'start'=>$date.' '.$time,'allDay'=> false );
};

样本输出:

[
    {
        "title": "Event One",
        "start": "2013-04-02 10:00:00",
        "allDay": false
    },
    {
        "title": "Event Two",
        "start": "2013-04-04 13:00:00",
        "allDay": false
    },
    {
        "title": "Event One",
        "start": "2013-04-09 10:00:00",
        "allDay": false
    },
    {
        "title": "Event Two",
        "start": "2013-04-11 13:00:00",
        "allDay": false
    }
]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多