我是Stack Overflow的新手。如果我的问题不明确,请指导我。
I have a datetime such as 2016-10-08 11:02:55.
I need to convert it into like this 8 OCT 2016.
有人知道我怎么能以这种格式得到它。这必须在PHP中完成。
感谢。
答案 0 :(得分:4)
您需要使用strtotime()
将目标字符串转换为时间,并使用date()
将时间转换为格式化日期。另外strtoupper()
将所有字符转换为大写。
$x = "2016-10-08 11:02:55";
echo strtoupper(date("j M Y",strtotime($x)));
<强>结果:强>
8 OCT 2016
工作DEMO
答案 1 :(得分:0)
PHP的优点在于通常有多种方法可以获得所需的结果,并且在这种情况下该原则也适用。您还可以编写以下代码:
<?php
$date = new DateTime('2016-10-08 11:02:55');
echo strtoupper($date->format('j M Y'));
查看实时代码here。
此解决方案的优点是您将字符串作为参数传递以初始化新的DateTime对象。您可以使用该对象指定日期格式。最后,我使用strtouppe()在所有大写字母中包含月份名称。
但公平地说,手册说这个对象的格式方法是有限的,如下:
此方法不使用区域设置。所有输出都是英文。
PHP为DateTime类提供了另一个方法,可以静态调用该方法来实例化DateTime对象。如果您愿意,您可以为方法提供时区信息。因此,编写解决方案的另一种方法如下:
<?php
$date = DateTime::createFromFormat('Y-m-d g:i:s', "2016-10-08 11:02:55");
echo strtoupper( $date->format('j M Y') );
查看实时代码here。