【问题标题】:CodeIgniter: format mysql DATETIME field dd/mm/yy hh:mmCodeIgniter:格式化mysql DATETIME字段dd/mm/yy hh:mm
【发布时间】:2023-04-06 08:15:01
【问题描述】:
你好,罐头上写的差不多。
我有一个日期时间 mysql 字段,我想以 dd/mm/yyyy hh:mm 格式输出,例如 07/01/2011 22:16。
我试过了:
<?php
$datestring = '%d/%m/%Y %h:%i';
echo mdate($datestring,$row->created);
?>
但我收到一个错误:
Message: A non well formed numeric value encountered
非常感谢任何帮助!
干杯,
比利
【问题讨论】:
标签:
php
datetime
codeigniter
date-format
【解决方案1】:
试试:
echo date ("d/m/Y h:ia",strtotime($row->created));
【解决方案2】:
mdate()函数的第二个参数仍然需要是整数时间戳,就像PHP原生的date()函数一样。尝试使用接受字符串作为参数(包括 MySQL 日期格式)并返回整数的 strtodate() 函数。可以这样做:
$datestring = '%d/%m/%Y %h:%i';
echo mdate($datestring, strtodate($row->created));
正如 CodeIgniter 文档所说,mdate() 和 date() 之间的唯一区别是:
此函数与 PHP 的 date() 函数相同,不同之处在于它允许您使用 MySQL 样式的日期代码,其中每个代码字母前面都有一个百分号:%Y %m %d 等。
以这种方式处理日期的好处是您不必担心转义任何不是日期代码的字符,因为您通常需要使用 date() 函数。
【解决方案3】:
使用treeface的解决方案让它工作,有一个小的改动:
$datestring = '%d/%m/%Y %h:%i';
echo mdate($datestring, strtoDATE($row->created));
//strtoDATE didn't work but strtoTIME did
让我摸不着头脑好几个小时,但现在它可以工作了,我可以继续使用 CI 助手来处理所有日期函数。
HTH
【解决方案4】:
我正在使用:
mdate(date_string,mysql_to_unix($row->created))
应该可以的。