将MySQL时间戳格式化为ics格式

时间:2014-10-01 19:59:17

标签: php mysql date timestamp icalendar

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

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

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

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

我做错了什么?

3 个答案:

答案 0 :(得分:5)

date()期望将Unix时间戳作为第二个参数。您可以使用strtotime()$timestamp转换为Unix时间戳。

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

如果您使用UNIX_TIMESTAMP()将该日期转换为查询中的Unix时间戳,可能会更容易,也更好。

答案 1 :(得分:1)

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

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

最后的Z表示UTC,所以如果你使用系统时间存储你的日期,你也想转换它。

答案 2 :(得分:0)

你必须将MySql的日期时间转换为Unix时间戳,因为你可以使用它 -

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

你真的不需要在函数中使用\Z

相关问题