将日期时间更改为单词中的月份名称

时间:2016-10-20 07:38:46

标签: php

我是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中完成。

感谢。

2 个答案:

答案 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