有关 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 链接中的信息:
格式日期
将 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 - “上午”或“下午”
-
u - ISO8601 格式
-
S - 'st'、'nd'、'rd'、'th' 表示日期
-
W - ISO8601 week number
特殊字符:
'...'
文字文本
''
单引号(用两个单引号表示)
(...)
仅当包含的变量之一非零时才显示格式
options 参数可用于覆盖默认语言环境选项,例如 monthNames、monthNamesShort、dayNames 和 dayNamesShort。