Отформатируйте временную метку MySQL в формате ics

Я пытаюсь преобразовать некоторые временные метки MySQL в официальный формат .ics. К сожалению, я всегда получаю вывод19700101T013334Z».

MySQL формат: 2014-09-29 18:00:00

Это моя функция PHP, которая должна преобразовывать даты соответственно:

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

Что я делаю неправильно?

0

Решение

date() ожидает метку времени Unix в качестве второго параметра. Ты можешь использовать strtotime() преобразовать $timestamp к метке времени Unix для вас.

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

Это может быть проще и лучше, если вы конвертируете эту дату в метку времени Unix в своем запросе, используя UNIX_TIMESTAMP().

5

Другие решения

Я знаю, что вы уже получили ответ, но вы также можете сделать это в базе данных:

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

Буква Z в конце указывает на UTC, поэтому, если вы храните свои даты, используя системное время, вы также захотите их преобразовать.

1

Вы должны преобразовать дату и время MySql в метку времени Unix, чтобы использовать ее —

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

Вы действительно не должны иметь \Z в функции.

0
По вопросам рекламы [email protected]