如何将时间从2010-12-30 23:21:46
转换为ISO 8601日期格式? (-_-;)
答案 0 :(得分:196)
这是推荐的方法。
$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'));
答案 1 :(得分:34)
在PHP 5之后,您可以使用:echo date("c");
格式ISO 8601格式化日期时间。
注释:
关于this,这两个表达式对于时区有效,基本格式为:±[hh]:[mm], ±[hh][mm], or ±[hh]
。
但请注意,+ 0X:00是正确的,+ 0X00对于扩展使用不正确。所以最好使用date("c")
。类似的讨论here。
答案 2 :(得分:2)
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
答案 3 :(得分:0)
如果您尝试在datetime-local
中设置值date("Y-m-d\TH:i",strtotime('2010-12-30 23:21:46'));
//output : 2010-12-30T23:21
答案 4 :(得分:0)
您可以尝试这种方式:
$datetime = new DateTime('2010-12-30 23:21:46');
echo $datetime->format(DATE_ATOM);
答案 5 :(得分:0)
ISO 8601 在 PHP 中基本上表示为 "Y-m-d\TH:i:sP"
您可以从常量中获取此值:
DateTime::ATOM
- 对于低于 7.2 的 PHP 版本(已删除)
DateTimeInterface::ATOM
- 适用于自 7.2 起的 PHP 版本
答案 6 :(得分:-2)
date("c");
//output : 2018-02-28T13:12:44+01:00