5 ответов:
Объектно-Ориентированное
это рекомендуемый способ.
$datetime = new DateTime('2010-12-30 23:21:46'); echo $datetime->format(DateTime::ATOM); // Updated ISO8601
процедурные
для более старых версий PHP, или если вы более комфортно с процедурным кодом.
echo date(DATE_ISO8601, strtotime('2010-12-30 23:21:46'));
после PHP 5 Вы можете использовать это:
echo date("c");форма ISO 8601 форматированный datetime.Примечание для комментариев:
в отношении этой, оба эти выражения действительны для часового пояса, для основного формата:
±[hh]:[mm], ±[hh][mm], or ±[hh].но обратите внимание, что, +0X:00 является правильным, и +0X00 является неправильным для расширенного использования. Так что лучше использовать
date("c"). Аналогичная дискуссия здесь.
как конвертировать из 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как конвертировать из unixtimestamp в 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
Если вы попытаетесь установить значение в datetime-local
date("Y-m-d\TH:i",strtotime('2010-12-30 23:21:46')); //output : 2010-12-30T23:21
Comments