【问题标题】:Format MySQL timestamp to ics format将 MySQL 时间戳格式化为 ics 格式
【发布时间】:2014-10-01 19:59:17
【问题描述】:

我正在尝试将一些 MySQL 时间戳转换为官方 .ics 格式。不幸的是,我总是得到输出“19700101T013334Z”。

MySQL 格式:2014-09-29 18:00:00

这是我的 PHP 函数,它应该相应地转换日期:

function dateToCal($timestamp) {
    return date('Ymd\THis\Z', $timestamp);
}

我做错了什么?

【问题讨论】:

    标签: php mysql date timestamp icalendar


    【解决方案1】:

    date() 需要一个 Unix 时间戳作为第二个参数。您可以使用strtotime()$timestamp 转换为您的Unix 时间戳。

    function dateToCal($timestamp) {
        return date('Ymd\THis\Z', strtotime($timestamp));
    }
    

    如果您在查询中使用 UNIX_TIMESTAMP() 将该日期转换为 Unix 时间戳,这可能会更简单、更好。

    【讨论】:

      【解决方案2】:

      我知道你已经得到了答案,但你也可以在数据库中这样做:

      SELECT FORMAT_DATE("2014-09-29 18:00:00", "%Y%m%dT%H%i%sZ");

      最后的 Z 表示 UTC,因此如果您使用系统时间存储日期,您也需要转换它。

      【讨论】:

      • 感谢您的提示:)
      【解决方案3】:

      你必须将 MySql 的日期时间转换为 Unix 时间戳才能使用它 -

      function dateToCal($timestamp) {
          date('Ymd\THis', strtotime($timestamp));
      }
      

      您确实不必在函数中包含\Z

      【讨论】:

        猜你喜欢
        • 2011-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-17
        • 1970-01-01
        • 2023-03-15
        相关资源
        最近更新 更多