想要找到更改FullCalendar中默认日期格式的方法。
实际上是:
2013年8月13日星期二18:00:00 GMT-0400(美国东部时间)
我想要:
2013-08-13
谢谢。
有关FullCalendar的特定信息,您可能需要查看它,它为您提供了一些格式化规则。这里还有一些有用的信息。
然而,如果您在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。Let:
> 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'
Locale仍然可能与您的示例中给出的GMT-0400不同(这里是GMT-0300,最后它给我的时间是本示例中的1小时)。
我将在这里复制我所说的第一个FullCalendar链接的信息:
formatDate
将Date对象格式化为字符串。
$.fullCalendar.formatDate( date, formatString [, options ] ) -> String
在1.3版本之前,formatDate接受了一种非常不同的格式。请参见此处。
formatString
是以下任意命令的组合:
- s-秒
- ss-秒,2位数字
- m-分钟
- 毫米-分钟,2位数字
- h-小时,12小时格式
- hh-小时,12小时格式,2位数字
- H-小时,24小时格式
- HH-小时,24小时格式,2位数字
- d-日期编号
- dd-日期编号,2位
- ddd-日期名称,缩写
- dddd-日期名称,完整
- M-月数
- MM-月数,2位
- MMM-月份名称,缩写
- MMMM-月份名称,完整
- 年-年,2位数字
- yyyy-年,4位数字
- t-"a"或"p"
- tt-"上午"或"下午"
- T-"A"或"P"
- TT-"AM"或"PM"
- u-ISO8601格式
- S-日期的"st"、"nd"、"rd"、"th"
- W-ISO8601周数
特殊字符:
'...'
文字文本
''
单引号(由两个单引号表示)
(...)
仅当包含的变量之一为非零时显示格式
options
参数可用于覆盖默认的区域设置选项,如monthNames、monthNamesShort、dayNames和dayNamesSshort。
我的解决方案:
select: function (start, end, allDay) {
var startFix= moment($.fullCalendar.formatDate(start, 'YYYY-MM-DD'));
newCalendar(startFix);
}