php - 将时间戳转换为 .ics iCal 兼容的日期格式

标签 php icalendar

我有一个日期,我通过 formatDate 存储为时间戳jQuery 中的函数。然后我将检索此值以制作一个 ics 文件,一个将事件时间和详细信息添加到用户日历的日历文件。但是时间戳格式在 ics 文件中不起作用,没有添加正确的日期,因此我需要将其转换为类似于 20091109T101015Z 的值。它的当前格式作为时间戳看起来像 1344466800000这来自 this example这就是我创建 ics 文件所遵循的内容。

我的 php 文件链接是 http://域。 com/icsCreator.php?startDate=1344380400000&endDate=1345503600000&event=Space%20Weather%20Workshop&location=伦敦

当前我的 ics 文件看起来像

<?php
$dtStart=$_GET['startDate'];
$dtEnd=$_GET['endDate'];
$eventName=$_GET['event'];
$location=$_GET['location'];

...
echo "CREATED:20091109T101015Z\n";
echo "DESCRIPTION:$eventName\n";
echo "DTEND:$dtEnd\n";    
echo "DTSTART:".$dtStart."\n";
echo "LAST-MODIFIED:20091109T101015Z\n";
echo "LOCATION:$location\n";
...

?>

最佳答案

看看这是否有效:

date('Ymd\THis', $time)

此处 $time 可以是查询字符串中的 startDateendDate。如果你不想花时间:

date('Ymd', $time)

注意(感谢 Nicola)这里,$time 必须是有效的 UNIX 时间戳,即它必须表示自纪元以来的秒数。如果表示毫秒数,需要先除以1000。

编辑 正如lars k 所指出的,您需要将\Z 添加到两个字符串的末尾。

编辑 正如Nicola 所指出的,您实际上并不需要它。

关于php - 将时间戳转换为 .ics iCal 兼容的日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11793840/

相关文章:

python - 适用于 Google 日历 -> iPhone 的字符编码和 VALARM 以及 .ics 文件

java - iCal 同步可以在 Java 中使用吗?如何使用java连接ical服务器?

python - 如何从 Python 中的 RRULE 中查找频率?

php - php 或 mysql 数据中的计算

ios - 如何在 ios 中打开日历 .ics 文件?

php sql插入双倍,一次空一次带值

PHP:如果我以非静态方式调用静态方法怎么办

php - 从数据库创建的动态 ical 不起作用

javascript - 如果未选择第一个,则禁用第二个下拉列表

php - 在第 n 个数字之后放置一些内容,而不是第 n 个字符?