我正在创建一个日历应用程序,该应用程序应该符合rfc-2445规范。我在这里的全天事件中遇到了一些问题,但现在问题已经解决,您可以在这里看到SO问题,但它迫使我提出以下问题。
当我选择全天事件时,例如从2015年10月20日到2015年10日21日(事件持续时间为2天),实际上我需要在DB中创建从2015年12月20日至2015年10年10月22日的记录,否则它将显示为一天事件。
我的问题有两部分:
- 以上内容是否正确,是否符合rfc-2445标准
- 我应该将此类事件存储在数据库中,时间为2015年10月20日至2015年10日22日,当向最终用户显示其详细信息时,我应该将其从结束日期减少一天,还是将其存储在2015年10年20日至2021年10月21日,当在日历中呈现时,在终止日期/li>
谢谢。
DTEND属性对应于事件的非包含端,因此,上面的示例是正确的
请参阅https://www.rfc-editor.org/rfc/rfc5545#section-3.6.1规定:
;DTSTART";";VEVENT";指定包含事件开始。对于重复发生的事件,它还指定递归集中的第一个实例。";DTEND";所有物对于";VEVENT";日历组件指定非包容性结束活动。
还有一个多日全天事件的例子:
以下是";VEVENT";日历组件用于表示从2007年6月28日开始的多日活动截至2007年7月8日(含)。注意;DTEND";属性为设定为2007年7月9日;DTEND";属性指定事件的非包容性结束。
BEGIN:VEVENT
UID:20070423T123432Z-541111@example.com
DTSTAMP:20070423T123432Z
DTSTART;VALUE=DATE:20070628
DTEND;VALUE=DATE:20070709
SUMMARY:Festival International de Jazz de Montreal
TRANSP:TRANSPARENT
END:VEVENT
您可能已经注意到,我指的是RFC5545,它已经废弃了RFC2445。