wow*_*wow 87 php datetime date-format time-format datetime-format
如何将我的时间转换2010-12-30 23:21:46为ISO 8601日期格式?(-_-;)
ale*_*lex 213
这是推荐的方式.
$datetime = new DateTime('2010-12-30 23:21:46');
echo $datetime->format(DateTime::ATOM); // Updated ISO8601
Run Code Online (Sandbox Code Playgroud)
对于旧版本的PHP,或者您对程序代码更熟悉.
echo date(DATE_ISO8601, strtotime('2010-12-30 23:21:46'));
Run Code Online (Sandbox Code Playgroud)
strtotime('2012-01-18T11:45:00+01:00');
// Output : 1326883500
Run Code Online (Sandbox Code Playgroud)
date_format(date_timestamp_set(new DateTime(), 1326883500), 'c');
// Output : 2012-01-18T11:45:00+01:00
Run Code Online (Sandbox Code Playgroud)
date_format(date_create('@'. 1326883500), 'c') . "\n";
// Output : 2012-01-18T10:45:00+00:00
Run Code Online (Sandbox Code Playgroud)
date_format(date_timestamp_set(new DateTime(), 1326883500)->setTimezone(new DateTimeZone('America/New_York')), 'c');
// Output : 2012-01-18T05:45:00-05:00
Run Code Online (Sandbox Code Playgroud)
小智 5
如果您尝试在 datetime-local 中设置一个值
date("Y-m-d\TH:i",strtotime('2010-12-30 23:21:46'));
//output : 2010-12-30T23:21
Run Code Online (Sandbox Code Playgroud)
ISO 8601 在 PHP 中基本上表示为"Y-m-d\TH:i:sP"
您可以从常量中获取该值:
DateTime::ATOM- 适用于 7.2 以下的 PHP 版本(已删除)
DateTimeInterface::ATOM- 适用于 7.2 以后的 PHP 版本
$datetime->format('Y-m-d\TH:i:s.u\Z')应该给出正确的格式,带有“T”分隔符、“Z”时区(确保首先转换为 UTC)和微秒(.u如果您不打算支持小数秒,请忽略)。
请参阅/sf/answers/667266281/讨论为什么应该使用T