【发布时间】:2019-10-20 10:36:17
【问题描述】:
我有一些 php 代码动态生成 .ics 文件以供下载。我传递了 08/01/2019 的开始日期值,当它成功导入 ical / google 日历时,它会关闭一天,尽管纪元时间戳是正确的。我不确定我在这里缺少什么。
我尝试将日期重新格式化为不同的日期字符串,而不是将其转换为 ical 所需的格式,结果是 1969 年 1 月 1 日。我正在使用 WordPress date_i18n() 函数将日期格式化为预期值。
$dateVal; // contains 08/01/2019
$dtstart = date_i18n("Ymd\THis\Z", strtotime( $dateVal) );
// output: 20190801T000000Z
当事件进入日历时,我的日期显示为 2019 年 7 月 31 日下午 6 点,而不是 2019 年 8 月 1 日的预期值
有什么想法可以调试这个吗?
【问题讨论】:
-
可能是时区问题。
-
如果不使用 GMT 会认为您需要时间戳。但我确定某处是 5:00... 添加一些时间方面,这样您就可以看到您有多少小时了。
-
@ficuscr 如果日期字符串没有时间部分,strtotime 是否假定为 00:00:00?
-
假设是这样。将其关闭可能只是意味着在解析和渲染 ical 时看不到它。建议一个明确的时间,比如 18:00,并且更容易发现日期时间如何转移到任何偏移量。
-
我明白你的意思。我只是在想,
20190801T000000Z是 Z 中的日期和时间。如果您不在 Z 中,日历会将日期/时间调整到您的时区,对吧?