将ISO日期转换为更易读的格式的PHP方法?

13

一个简单的问题。如何将PHP ISO时间(例如2010-06-23T20:47:48-04:00)转换为更易读的格式?PHP中是否已经内置了相应的函数?我查找了一些资料,但并没有看到可以转换时间格式的函数。如果没有这样的函数,是否有可能实现?

谢谢!


如果需要时间,您可以从T修剪字符串或将T替换为空格,然后从“-”(Z)修剪。没有比ISO 8601日期格式更易读的日期,特别是如果您计划分享该日期全球范围内。每个人都知道像“2020-10-09”这样的日期表示“2020年10月9日”,但在世界上某些地方,“10/09/2020”是“2020年9月10日”,而在其他一些地方则是“2020年10月9日”。 - AaA
7个回答

25
$format = "d M Y"; //or something else that date() accepts as a format
date_format(date_create($time), $format);

一直盯着我看了这么久,谢谢。 - Dylan Taylor

9

1
值得一提的是,如果您需要支持1970年之前的日期,则strtotime将不是最佳选择。date_create使用PHP的DateTime类,也将支持更早的日期。 - strandmyr
@strandmyr 对于旧日期,它实际上可以正常工作。strtotime()将返回负数。也许在32位窗口或类似的系统中可能会返回false,但我不确定。 - Mladen Janjetovic

1
echo strftime("%b %e %Y at %l:%M %p", strtotime($ios));

好的,我会做。


1

可能可以工作,但是 date() 函数需要时间戳为整数 - 因此如果 ISO 时间已经是字符串,则无法正常工作。 - a_m0d

1

1

strptime() 将包含作为函数第二个参数传递的格式的时间/日期字符串转换为数组。返回值是一个包含日、月、年、小时、分钟和秒值的数组;您可以使用这些值来获取以您喜欢的格式表示日期的字符串。

自 PHP 5.1.0 起,strptime() 可用,而 DateTime 类自 PHP 5.2.0 起可用。


0

如果需要一个短日期,请尝试这个:

$a_date = '2010-06-23T20:47:48-04:00';
echo date('Y-m-d', strtotime($a_date));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接