如何在PHP中将date时间转换为ISO 8601

如何将我的时间从2010-12-30 23:21:46转换为ISO 8601的date格式? (-_-;)

面向对象

这是推荐的方法。

 $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格式的date时间。

http://ideone.com/nD7piL

注释注释:

关于这个 ,这两个expression式对于时区是有效的,对于基本格式: ±[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(“Ymd \ TH:i”,strtotime('2010-12-30 23:21:46'));

//输出:2010-12-30T23:21