我正在尝试将一些MySQL时间戳转换为官方的.ics格式。不幸的是,我总是得到输出"19700101T013334Z
"。
MySQL格式:2014-09-29 18:00:00
这是我的PHP函数,应该相应地转换日期:
function dateToCal($timestamp) {
return date('Ymd'THis'Z', $timestamp);
}
我做错了什么?
date()
期望Unix时间戳作为第二个参数。您可以使用strtotime()
将$timestamp
转换为Unix时间戳。
function dateToCal($timestamp) {
return date('Ymd'THis'Z', strtotime($timestamp));
}
如果您在查询中使用UNIX_TIMESTAMP()
将该日期转换为Unix时间戳,可能会更容易、更好。
我知道你已经得到了答案,但你也可以在数据库中这样做:
SELECT FORMAT_DATE("2014-09-29 18:00:00", "%Y%m%dT%H%i%sZ");
末尾的Z表示UTC,所以如果你使用系统时间存储日期,你也需要转换它。
您必须先将MySql的日期时间转换为Unix时间戳,然后才能使用它-
function dateToCal($timestamp) {
date('Ymd'THis', strtotime($timestamp));
}
您真的不必在函数中使用'Z
。