我正在尝试转换我从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
答案 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));