gpt4 book ai didi

ruby-on-rails - 全天事件日历 gem

转载 作者:行者123 更新时间:2023-12-03 16:19:26 25 4
gpt4 key购买 nike

我正在使用以下内容设置一个事件以使用 icalendar gem 导出到 ical。

@calendar = Icalendar::Calendar.new

event = Icalendar::Event.new
event.dtstart = ev.start_at.strftime("%Y%m%d")
event.dtend = ev.end_at.strftime("%Y%m%d")
event.summary = ev.summary

@calendar.add

为了让一个事件一整天,它需要看起来像这样:

DTSTART;VALUE=DATE:20101117
DTEND;VALUE=DATE:20101119

我现在正在使用

event.dtstart = "$VALUE=DATE:"+ev.start_at.strftime("%Y%m%d")"

这将输出

DTSTART:$VALUE=DATE:20101117

然后我将所有“:$”替换为“;”与

@allday = @calendar.to_ical.gsub(":$", ";")

有没有更直接的方法将日期保存为全天?

最佳答案

我玩弄了这个并想出了一种方法。您可以以键值对的形式将属性分配给事件日期。所以你可以像这样分配 VALUE 属性:

event = Icalendar::Event.new
event.dtstart = Date.new(2010,12,1)
event.dtstart.ical_params = { "VALUE" => "DATE" }
puts event.to_ical

# output
BEGIN:VEVENT
DTSTAMP:20101201T230134
DTSTART;VALUE=DATE:20101201
SEQUENCE:0
UID:2010-12-01T23:01:34-08:00_923426206@ubuntu
END:VEVENT

现在是有趣的部分。给定一个日历,您可以创建一个事件并传入一个使用其属性初始化日期的 block :

calendar.event do
dtstart Date.new(2010,11,17), ical_params = {"VALUE"=>"DATE"}
dtend Date.new(2010,11,19), ical_params = {"VALUE"=>"DATE"}
end

关于ruby-on-rails - 全天事件日历 gem ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4330672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com