我是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中完成。
谢谢。
需要使用strtotime()
将目标字符串转换为时间,使用date()
将时间转换为格式化的日期。strtoupper()
将所有字符转换为大写
$x = "2016-10-08 11:02:55";
echo strtoupper(date("j M Y",strtotime($x)));
结果:8 OCT 2016
演示工作PHP的伟大之处在于通常有不止一种方法来获得期望的结果,这个原则在这种情况下也是正确的。您还可以编写以下代码:
<?php
$date = new DateTime('2016-10-08 11:02:55');
echo strtoupper($date->format('j M Y'));
查看实时代码。
该解决方案的优点是,您可以将字符串作为参数传递给初始化新的DateTime对象。您可以使用该对象来指定日期格式。最后,我使用strtouppe()将月份名称全部大写。
平心而论,手册说这个对象的format方法是有限的,如下所示:
此方法不使用区域设置。所有输出均为英文。
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') );