Конвертировать ISO 8601 в unixtimestamp - PullRequest
33 голосов
/ 18 января 2012

Как я могу преобразовать 2012-01-18T11:45:00+01:00 (ISO 8601) в 1326883500 (unixtimestamp) в PHP?

Ответы [ 2 ]

58 голосов
/ 18 января 2012
echo date("U",strtotime('2012-01-18T11:45:00+01:00'));
12 голосов
/ 20 февраля 2016

Для преобразования из ISO 8601 в unixtimestamp:

strtotime('2012-01-18T11:45:00+01:00');
// Output : 1326883500

Чтобы преобразовать метку unixtimestamp в ISO 8601 (сервер часовых поясов):

date_format(date_timestamp_set(new DateTime(), 1326883500), 'c');
// Output : 2012-01-18T11:45:00+01:00

Для преобразования из метки unixtime в ISO 8601 (GMT):

date_format(date_create('@'. 1326883500), 'c') . "\n";
// Output : 2012-01-18T10:45:00+00:00

Чтобы преобразовать метку unixtimestamp в ISO 8601 (пользовательский часовой пояс):

date_format(date_timestamp_set(new DateTime(), 1326883500)->setTimezone(new DateTimeZone('America/New_York')), 'c');
// Output : 2012-01-18T05:45:00-05:00
...