php:日期转换为dd-mm-YYYY格式

时间:2011-09-26 17:49:17

标签: php sql oracle date timestamp

我正在尝试转换我从Oracle sql查询中获取的时间戳格式:

19-SEP-11 02.34.51.558459 PM

我需要将其转换为以下格式:dd-mm-YYYY。

$install_date=strtotime($install_date);
$install_date=date("d/m/Y",strtotime($install_date));

但是我得到了奇怪的结果......

有什么想法吗?

*** forgot to mention, the field type is TIMESTAMP and not DATETIME

3 个答案:

答案 0 :(得分:4)

在处理strtotime()无法处理的格式(请参阅supported date and time formats)时,或者即使您处理的格式,也可以使用DateTime从任何格式创建DateTime::createFromFormat()对象(或它的程序双胞胎,date_create_from_format())(docs)。

$install_date = '19-SEP-11 02.34.51.558459 PM';
$datetime     = DateTime::createFromFormat('j-M-y h.i.s.u A', $install_date);
$datetime_dmy = $datetime->format('d/m/Y');

答案 1 :(得分:2)

如果是Oracle中的日期时间字段,则可以使用

TO_CHAR(fieldName, 'DD-MM-YYY')

在你的选择中,它将被格式化,因为它来自数据库。

答案 2 :(得分:0)

请改为:

$install_date=strtotime($install_date);
$install_date=date("d/m/Y",$install_date);

您已将$install_date转换为内部时间,然后您在第二行再次进行此操作。

当然,如果您愿意,可以将它全部缩减为一行:

$install_date=date("d/m/Y",strtotime($install_date));