【问题标题】:PHP Date to iCal date format for DTSTARTDTSTART 的 PHP 日期到 iCal 日期格式
【发布时间】:2011-10-06 18:32:47
【问题描述】:

有没有一种简单的方法可以使用 php 日期获取 iCal DTSTART 的正确格式?

如果我没有时间,我需要格式看起来像:20111008T110000 或 20111008(这很简单)。

PHP 日期是否有一种快速的方法来执行此操作,特别是在需要时添加或删除时间的方法?

【问题讨论】:

  • PHP 日期是一个时间戳,它总是包含时间,包括时间。秒。你在找什么?
  • 我认为下面的答案提供了我正在寻找的内容。

标签: php date icalendar


【解决方案1】:

据我所知,没有任何原生 PHP 函数或日期格式,因此您需要创建自己的函数。像这样的:

function getIcalDate($time, $inclTime = true)
{
    return date('Ymd' . ($inclTime ? '\THis' : ''), $time);
}

正如 hakre 在评论中指出的那样,日期格式化程序无法区分带时间的日期和不带时间的日期 - 您必须确定其背后的逻辑。

【讨论】:

  • 你最后不是少了一个 Z 吗?
  • @DanyKhalife:根据RFC,日期时间值有几种可接受的形式。没有'Z'的那个被称为“本地时间的日期”,这意味着没有与之关联的时区信息。添加尾随“Z”会将日期时间转换为 UTC(“带有 UTC 时间的日期”)。最后,您可以明确定义时区(“带有本地时间和时区参考的日期”)。
  • 哦酷,很高兴知道,我应该花更多时间阅读这些细节:D
【解决方案2】:
date('Ymd\THis', time())

您可以将time() 替换为您自己的时间戳。

【讨论】:

    【解决方案3】:

    这可能是您正在寻找的linkthis 也可以帮助您。

    mktime 函数可根据需要制作时间戳,包括时间或仅日期。

    【讨论】:

    • 投了反对票,问题是根据tools.ietf.org/html/rfc2445询问DTSTART的时间格式
    • 另外放链接也不是很好的回答方式。链接可能会随着时间的推移而过时或损坏。
    猜你喜欢
    • 2012-04-03
    • 1970-01-01
    • 2013-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-24
    相关资源
    最近更新 更多