6

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

实际上,它是:
2013 年 8 月 13 日星期二 18:00:00 GMT-0400 (EDT)

我要:
2013-08-13

谢谢。

4

2 回答 2

9

有关 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. 让:

> 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 链接中的信息:

格式日期

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

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

在 1.3 版之前,formatDate 接受了一种非常不同的格式。见这里

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 - “上午”或“下午”
  • u - ISO8601 格式
  • S - 'st', 'nd', 'rd', 'th' 表示日期
  • W - ISO8601 周数

特殊字符:

'...' 文字

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

(...) 仅当包含的变量之一为非零时才显示格式

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

于 2013-08-31T18:28:47.867 回答
0

我的解决方案:

      select: function (start, end, allDay) {             
        var startFix= moment($.fullCalendar.formatDate(start, 'YYYY-MM-DD'));               
        newCalendar(startFix);           
    }
于 2017-04-18T14:13:41.117 回答