fullCalendar的24小时时间格式(所以没有AM到PM)

时间:2012-01-31 14:10:49

标签: jquery time fullcalendar

我正在尝试在fullCalendar中显示24小时时间格式,我正在尝试使用这些说明:http://arshaw.com/fullcalendar/docs/text/timeFormat/

所以我添加了

timeFormat: {
    agenda: 'H(:mm)' //h:mm{ - h:mm}'
    },

到json.php:

$(document).ready(function() {

    $('#calendar').fullCalendar({

    header: {
            left: 'prev,next today',
            center: 'title',
            right: 'month,agendaWeek,agendaDay'
        },

        editable: true,
        allDayDefault: false,
        events: "core/displays/calendar/json-events.php", 
        defaultView: 'agendaDay',
        timeFormat: {
    agenda: 'H(:mm)' //h:mm{ - h:mm}'
    },


        eventDrop: function(event, delta) {
            alert(event.title + ' was moved ' + delta + ' days\n' +
                '(should probably update your database)');
        },
                eventClick: function(calEvent, jsEvent, view) {     

               window.location = "details_view.php?id=" + calEvent.id;


    },

        loading: function(bool) {
            if (bool) $('#loading').show();
            else $('#loading').hide();
        }


    });

});

但这不起作用,所以我已添加到fullCalendar.js

// time formats
titleFormat: {
    month: 'MMMM yyyy',
    week: "MMM d[ yyyy]{ '—'[ MMM] d yyyy}",
    day: 'dddd, MMM d, yyyy'
},
columnFormat: {
    month: 'ddd',
    week: 'ddd M/d',
    day: 'dddd M/d'
},
axisFormat: 'H(:mm)', //,'h(:mm)tt',
timeFormat: {
    agenda: 'H(:mm)' //h:mm{ - h:mm}'
    },
// locale

但这也不起作用,我做错了什么?

13 个答案:

答案 0 :(得分:46)

您希望将布局设置为24小时制或事件。

如果你想添加到事件中,请像22:00'party'那样将timeFormat:'H:mm'添加到你的json.php文件中。

eventDrop: function (event, delta) {
        alert(event.title + ' was moved ' + delta + ' days\n' +
            '(should probably update your database)');
},
timeFormat: 'H:mm',

如果您想更改日历的布局,请转到fullCalendar.js

向上看:

<强> setDefaults

并按以下方式更改您的代码。

setDefaults({
    allDaySlot: true,
    allDayText: 'Volledige dag',
    firstHour: 8,
    slotMinutes: 30,
    defaultEventMinutes: 120,
    axisFormat: 'HH:mm',
    timeFormat: {
        agenda: 'H:mm{ - h:mm}'
    },
    dragOpacity: {
        agenda: .5
    },
    minTime: 0,
    maxTime: 24
});

答案 1 :(得分:26)

此选项现在适用于fullCalendar v2:

slotLabelFormat:"HH:mm"

http://fullcalendar.io/docs/agenda/slotLabelFormat/

答案 2 :(得分:9)

如果您想在24小时搜索中更改月视图并更改fullcalendar.js,请执行以下操作:

var dateFormatters = {
    s   : function(d)   { return d.getSeconds() },
    ss  : function(d)   { return zeroPad(d.getSeconds()) },
    m   : function(d)   { return d.getMinutes() },
    mm  : function(d)   { return zeroPad(d.getMinutes()) },
    h   : function(d)   { return d.getHours() % 24 || 24 },             //modificato : era 12 al posto di 24
    hh  : function(d)   { return zeroPad(d.getHours() % 24 || 24) },    //modificato : era 12 al posto di 24
    H   : function(d)   { return d.getHours() },
    HH  : function(d)   { return zeroPad(d.getHours()) },
    d   : function(d)   { return d.getDate() },
    dd  : function(d)   { return zeroPad(d.getDate()) },
    ddd : function(d,o) { return o.dayNamesShort[d.getDay()] },
    dddd: function(d,o) { return o.dayNames[d.getDay()] },
    M   : function(d)   { return d.getMonth() + 1 },
    MM  : function(d)   { return zeroPad(d.getMonth() + 1) },
    MMM : function(d,o) { return o.monthNamesShort[d.getMonth()] },
    MMMM: function(d,o) { return o.monthNames[d.getMonth()] },
    yy  : function(d)   { return (d.getFullYear()+'').substring(2) },
    yyyy: function(d)   { return d.getFullYear() },
    //t : function(d)   { return d.getHours() < 12 ? 'a' : 'p' },
    //tt    : function(d)   { return d.getHours() < 12 ? 'am' : 'pm' },
    //T : function(d)   { return d.getHours() < 12 ? 'A' : 'P' },
    //TT    : function(d)   { return d.getHours() < 12 ? 'AM' : 'PM' },
    t   : function(d)   { return d.getMinutes() == 0 ? ':00' : '' },
    tt  : function(d)   { return d.getHours() < 12 ? '' : '' },
    T   : function(d)   { return d.getHours() < 12 ? '' : '' },
    TT  : function(d)   { return d.getHours() < 12 ? '' : '' },
    u   : function(d)   { return formatDate(d, "yyyy-MM-dd'T'HH:mm:ss'Z'") },
    S   : function(d)   {
        var date = d.getDate();
        if (date > 10 && date < 20) {
            return 'th';
        }
        return ['st', 'nd', 'rd'][date%10-1] || 'th';
    }
};

答案 3 :(得分:2)

最受好评的答案适用于旧版本。 对于较新的版本,请在SetDefaults中添加另一个变量:

slotLabelFormat:'H(:mm)',

这应该适用于更新版本(2018),例如FullCalendar v3.9.0

答案 4 :(得分:2)

在v4中用于vue.js

<div>    
    <FullCalendar

       [...] // some code

       :eventTimeFormat="{
             hour: '2-digit',
             minute: '2-digit',
             hour12: false
       }"
    />
</div>

答案 5 :(得分:1)

如果您使用的是fullCalendar v1,则应尝试添加以下内容:

$('#calendar').fullCalendar({
     [...]// some code,

     axisFormat: 'H:mm',
     timeFormat: {
          agenda: 'H:mm{ - H:mm}'
     }
});

答案 6 :(得分:1)

由于某些原因,这些解决方案对我不起作用了。

所以经过一些广泛的(cmd + F)搜索后,我发现这篇文章在第107行左右谈论/includes/js/main.js。第107行允许你改变日/月/年订单。

但是呢!第113行(或周围)允许您将星期和日期议程视图中的上午/下午更改为全世界使用的时间表示(一些英语国家除外)。

如果您愿意,可以更改更多内容,但在您的下方,我会找到足够好的片段代码,以便我在荷兰网站上正确显示。

TT:function(a){return a.getHours()<12?"AM":"PM"},u:function(a){return Oa(a,"yyyy-MM-dd'T'HH:mm:ss'Z'")},S:function(a){a=a.getDate();if(a>10&&a<20)return"th";return["st","nd","rd"][a%10-1]||"th"}};Aa.applyAll=$a;Ja.month=mc;Ja.basicWeek=nc;Ja.basicDay=oc;wb({weekMode:"fixed"});Ja.agendaWeek=qc;Ja.agendaDay=rc;wb({allDaySlot:true,allDayText:"hele dag",firstHour:8,slotMinutes:30,defaultEventMinutes:120,axisFormat:"HH:mm",timeFormat:{agenda:"h:mm{ - h:mm}"},dragOpacity:{agenda:0.5},minTime:0, maxTime:22})}) 为了您的方便,您可以在这里找到为荷兰语修复的整个main.js:http://pastebin.com/HYGHRebZ

我希望这个解决方案也适合你!

答案 7 :(得分:1)

将此用于v.2加timeFormat: 'H(:mm)',

答案 8 :(得分:1)

axisFormat: 'H:mm',
timeFormat: {
    agenda: 'H:mm'
},

它正在处理agendaDay视图和事件显示24小时格式

答案 9 :(得分:1)

im使用4.2.0版,并在事件结束时使用它:

      {
      title: 'Birthday Party',
      start: '2019-06-13T07:00:00',
      eventBackgroundColor: '#ff0000',
      allDay:false
      }

  ],
  eventTimeFormat: { 
    hour: '2-digit',
    minute: '2-digit',
    hour12:false
}

});

答案 10 :(得分:0)

从fullCalendar.io版本4开始,根据您希望更改格式的位置,使用eventTimeFormattitleFormatcolumnHeaderFormatslotLabelFormat(最后一个用于时间网格中的轴),格式如下:

eventTimeFormat: {
  hour: '2-digit', //2-digit, numeric
  minute: '2-digit', //2-digit, numeric
  second: '2-digit', //2-digit, numeric
  meridiem: false, //lowercase, short, narrow, false (display of AM/PM)
  hour12: false //true, false
}

注释显示值选项。

有关更多参考:https://fullcalendar.io/docs/date-formatting

答案 11 :(得分:0)

对于v.4,我需要24小时格式的类似内容:

slotLabelFormat: {hour: 'numeric', minute: '2-digit', hour12: false}

答案 12 :(得分:0)

在v4中,您可以通过编程方式设置日历选项,以实现网格左侧的小时标签的24h格式:

const slotLabelOption = {
    hour: 'numeric',
    minute: '2-digit',
    omitZeroMinute: false,
    meridiem: 'narrow',
    hour12: false
};
calendar.setOption('slotLabelFormat', slotLabelOption);

对于事件时间,请执行以下操作:

 const eventTimeOption = {
        hour: 'numeric',
        minute: '2-digit',
        omitZeroMinute: false,
        meridiem: 'narrow',
        hour12: false
    };
 calendar.setOption('eventTimeFormat', eventTimeOption);

with calendar = new FullCalendar.Calendar(....)//无论如何初始化