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

我有一个日期,我通过 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 所指出的,您实际上并不需要它。

https://stackoverflow.com/questions/11793840/

相关文章:

php - 用于匹配标点符号和字母数字字符的正则表达式

ruby-on-rails - 在 Rails 3 的邮件拦截器中设置 header

jruby - bundler 无法识别平台?找不到 gem

php - 如何在php中显示有限的单词

performance - Matlab 中 parfor 循环优于 for 循环的具体例子

bash - 获取 n 个最后记录并更改它们的特定列

php - 使用 maxlength 标签通过 PHP 检查表单输入长度

r - 根据焦点画一个椭圆

sql - UNION ALL 之后的 CTE

ruby-on-rails - RAILS3 : to_JSON with multiple obj