FullCalendar日期格式

时间:2013-08-31 18:12:32

标签: javascript fullcalendar

想要找到在FullCalendar中更改默认日期格式的方法。

实际上,它是:
2013年8月13日星期二18:00:00 GMT-0400(美国东部时间)

我想:
2013年8月13日

感谢。

2 个答案:

答案 0 :(得分:8)

有关FullCalendar的特定信息,您可能需要查看this,它会为您提供一些格式规则。还有一些可能有用的信息here


但是,如果您需要在FullCalendar与其他软件包或您自己的代码之间的接口中使用此日期格式,则可以直接使用JavaScript:

如果你想要“今天”,你可以(小心,因为那将是客户端):

> (new Date()).toISOString().slice(0, 10)
'2013-08-31'

从你说过的字符串中,你可以:

> dateStr = "Tue Aug 13 2013 18:00:00 GMT-0400 (EDT)"
> (new Date(dateStr)).toISOString().slice(0, 10)
'2013-08-13'

两者都会以UTC格式提供ISO日期。对于区域设置日期,您应该在使用.toISOString之前将时间对象“移动”到UTC。让:

> dateStr = "Mon Aug 12 2013 22:00:00 GMT-0400 (EDT)"
> dateObj = new Date(dateStr) /* Or empty, for today */
> dateIntNTZ = dateObj.getTime() - dateObj.getTimezoneOffset() * 60 * 1000
> dateObjNTZ = new Date(dateIntNTZ)
> dateObjNTZ.toISOString().slice(0, 10)
'2013-08-12'

区域设置仍然可以与您的示例中给出的GMT-0400不同(此处为GMT-0300,最后它在本示例中为1小时后给出了我。)


我将在这里复制我说的第一个FullCalendar链接中的信息:

formatDate

将Date对象格式化为字符串。

$.fullCalendar.formatDate( date, formatString [, options ] ) -> String

在1.3版之前,formatDate接受了一种非常不同的格式。请参阅here

formatString是以下任何命令的组合:

  • s - 秒
  • ss - 秒,2位
  • m - 分钟
  • mm - 分钟,2位数
  • h - 小时,12小时格式
  • hh - 小时,12小时格式,2位数字
  • H - 小时,24小时格式
  • HH - 小时,24小时制,2位数
  • d - 日期编号
  • dd - 日期编号,2位数
  • ddd - 日期名称,简称
  • dddd - 日期名称,完整
  • M - 月号
  • MM - 月号,2位数
  • MMM - 月份名称,简称
  • MMMM - 月份名称,完整
  • yy - 年,2位数
  • yyyy - 年,4位
  • t - 'a'或'p'
  • tt - 'am'或'pm'
  • T - 'A'或'P'
  • TT - 'AM'或'PM'
  • - ISO8601格式
  • S - 'st','nd','rd','th'代表日期
  • W - ISO8601 week number

特殊字符:

'...'     文字

''     单引号(由两个单引号表示)

(...)     仅当其中一个封闭变量为非零时才显示格式

options参数可用于覆盖默认语言环境选项,例如monthNamesmonthNamesShortdayNamesdayNamesShort

答案 1 :(得分:0)

我的解决方案:

      select: function (start, end, allDay) {             
        var startFix= moment($.fullCalendar.formatDate(start, 'YYYY-MM-DD'));               
        newCalendar(startFix);           
    }