Как мне преобразовать свое время с 2010-12-30 23:21:46
в формат даты ISO 8601? (-_-;)
Это рекомендуется.
$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, форматированное дату и время.
Примечание для комментариев:
В связи с этим оба эти выражения действительны для часовой пояс, для базового формата: ±[hh]:[mm], ±[hh][mm], or ±[hh]
.
Но учтите, что + 0X: 00 верно, а + 0X00 неверно для расширенного использования. Поэтому лучше использовать date("c")
. Подобное обсуждение здесь .
strtotime('2012-01-18T11:45:00+01:00'); // Output : 1326883500
date_format(date_timestamp_set(new DateTime(), 1326883500), 'c'); // Output : 2012-01-18T11:45:00+01:00
date_format(date_create('@'. 1326883500), 'c') . "\n"; // Output : 2012-01-18T10:45:00+00:00
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 ("Ymd \ TH: i", strtotime ('2010-12-30 23:21:46'));
// вывод: 2010-12-30T23: 21