2017-06-23 32 views
0
  • 我有一個使用FullCalendar的應用程序。
  • 我想將事件保存到MySQL數據庫。

我使用FullCalendar規定方式:FullCalendar - 將事件的開始/結束保存爲毫秒 - 格式與否?

<link href='../fullcalendar.css' rel='stylesheet' /> 
<link href='../fullcalendar.print.css' rel='stylesheet' media='print' /> 
<script src='../lib/moment.min.js'></script> 
<script src='../lib/jquery.min.js'></script> 
<script src='../fullcalendar.min.js'></script> 
<script> 

    $(document).ready(function() { 

     $('#calendar').fullCalendar({ 
      header: { 
       left: 'prev,next today', 
       center: 'title', 
       right: 'month,basicWeek,basicDay' 
      }, 
      defaultDate: '2016-09-12', 
      navLinks: true, 
      editable: true, 
      eventLimit: true, 
      events: [ 
       { 
        id: 101, 
        title: 'Repeating Event', 
        start: '2016-09-09T15:00:00', 
        end: '2016-09-09T15:30:00', 

       }, 
       { 
        id: 102, 
        title: 'Repeating Event', 
        start: '2016-09-16T17:00:00' 
        end: '2016-09-16T17:30:00' 
       } 
      ], 

      // EXTERNAL EVENT DROPPED 
      eventReceive: function(event){ 

       // loop event data 
       for(var key in event){ 
        console.log(key+" ------->"+event[key]+"\n"); 
       } 

       // RETURNS MILLISECONDS i.e. '1498212000000' -> '1498213800000' 
       // WHICH MAKES ME THINK THAT THE MAKERS OF FULLCALENDAR INTENDED ME TO USE MILLISECONDS 
       alert(event['start']+" -> "+event['end']); 

       // SAVE EVENT 
       SAVE_EVENT_VIA_SOME_AJAX(event['id'],event['title '], event['start'], event['end']); 

      } 
     }); 

    }); 

</script> 

當研究節能FullCalendar事件到數據庫;我看到很多轉換 - 各種日期格式 - 來回數據輸入和輸出。

我在尋找最輕的重量,最準確和直接的方法。


的 'event['start']' 和 'event['end']' 返回 - 由FullCalendar - 爲毫秒。 這似乎是 - 「最輕的重量」和準確的(你怎麼能用毫秒和moment.js出錯) - 保存到數據庫的方式。

如果這是正確的 - 那麼我現在應該如何顯示這些日期?

FullCalendar在events:[]中似乎不能接受毫秒,這讓我認爲可能將事件保存到MySQL爲毫秒,是錯誤的?

回答

1

eventRender方法中的事件開始和結束日期(與日曆中的大多數地方一樣)是momentJS 對象。因此,在內部,它們以毫秒爲單位存儲時間戳,如果您將原始對象記錄到控制檯,這很可能會出現。

但是,您可以以任何您想要的格式輸出日期 - 請參閱https://momentjs.com/docs/#/displaying/。所以你可以通過毫秒來傳遞日期到服務器,或者像ISO格式那樣明確的其他東西。

但即使您以毫秒爲單位將日期傳遞到您的服務器/數據庫,並不意味着您必須以返回它的格式。只要您將日期存儲在數據庫中的日期時間字段中,就可以使用服務器端語言的日期格式化函數(例如,PHP,.NET,無論您使用什麼)在檢索時以任何您喜歡的方式輸出它它 - ISO格式是fullCalendar/momentJS最容易理解的格式。

相關問題