问题标签 [jscalendar]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
icalendar - iCalendar 持续时间,其中持续时间的日期部分在 DST 不连续内结束
RFC 5545和JSCalendar等其他标准将持续时间定义P1DT12H
为一个标称天加上 12 个精确小时。通常这将是 36 个真实世界(“精确”或“准确”)小时,但是:
- 如果春季 DST 转换发生在该持续时间的“名义上的一天”部分,则准确的持续时间仅为 35 小时。
- 如果秋季 DST 转换发生在“名义上的一天”部分,那么准确的持续时间将为 37 小时。
但是,如果开始日期/时间恰好是不连续时期之前的名义上的一天怎么办?例如,P1DT12H
添加到2020-03-07T02:30
DSTAmerica/Los_Angeles
开始处的持续时间2020-03-08T02:00
。在这种情况下,该持续时间结束时计算的本地时间应该是多少?
是2020-03-08T14:30
吗?2020-03-08T13:30
? 2020-03-08T15:30
? 还有什么?还有:为什么?
问题是计算确切持续时间的天真方法是使用标称单位添加持续时间的日期部分,然后将该中间结果转换为 UTC 并使用精确时间添加持续时间的时间部分。但是该中间结果是一个被跳过的无效标称时间,那么该中间值的本地时间是2020-03-08T03:30
(凌晨 3 点 30 分,而不是凌晨 2 点 30 分),因为 RFC 5545 说:
如果没有出现所描述的本地时间(从标准时间更改为夏令时),则使用本地时间间隙之前的 UTC 偏移量解释 DATE-TIME 值。
因此,使用规范的这种解释,添加 12 个精确小时时间部分后的最终结果应该是2020-03-08T15:30
下午 3:30。
这是根据 RFC 5455 的“正确”答案吗?如果不是,答案应该是什么,为什么?
或者这是标准中的模棱两可并且没有客观正确的答案?
javascript - 如何使用 Angular 为 js-calender-year 中的每个选定日期添加颜色。页面刷新后颜色应保持不变
我正在使用js-year-calendar插件来一次显示一年中的所有月份。但是,我一次只能选择一天,然后将日期存储在数据库中。请问,有没有办法选择多天,例如 2020/08/04 - 2020-08-12,然后将此范围一次存储在数据库中。同时,我浏览了文档,但对我来说并不清楚。请我需要帮助才能清楚地了解如何解决这个问题。谢谢
HTML
TS 代码
fullcalendar - Fullcalendar 年度生日活动
我想在日历中显示员工的生日。但是,仅显示员工出生那年的一个事件。我怎样才能在整个日历中每年重复一个事件并且无限期地重复一个事件?
vue-router - 内容仅在重新加载后显示
我正在尝试显示一个基于jsCalendar库的简单日历。当我导航到页面时,日历不会出现;但是,当我重新加载页面[⌘-R]或直接输入页面URL时,内容正常显示。我已经在 Safari 和 FireFox 中进行了测试,并且行为是相同的。
期望的结果:
通过 Vue Router 或直接导航到达页面时显示内容。
日历.vue
导航到 Calendar.vue
导航到页面时,div
如下所示:
重新加载或直接导航
重新加载页面或直接在浏览器中输入 URL 时,div
如下所示:
(动态属性jscalendar-loaded
(在显示日历对象时添加到 div)在导航到页面时未建立。)
环境:
编辑:在咨询 jsCalendar 的作者时,我了解到该脚本作用于页面加载事件,这解释了为什么导航到视图时内容不更新。外部脚本有一个autoFind()
函数,可以调用mounted()
它来更新内容;但是,我一直无法找到调用该函数的正确方法。
结果是: