我正在尝试将一些MySQL时间戳转换为官方.ics格式。不幸的是,我总是得到输出“19700101T013334Z
”。
MySQL格式:2014-09-29 18:00:00
这是我的PHP函数,它应该相应地转换日期:
function dateToCal($timestamp) {
return date('Ymd\THis\Z', $timestamp);
}
我做错了什么?
答案 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
。