我在MySQL中有一个日期时间列。
如何将其转换为显示为mm/dd/yy H:M (AM/PM)使用PHP?
我在MySQL中有一个日期时间列。
如何将其转换为显示为mm/dd/yy H:M (AM/PM)使用PHP?
当前回答
$valid_date = date( 'm/d/y g:i A', strtotime($date));
参考:http://php.net/manual/en/function.date.php
其他回答
忘记所有。只使用:
$date = date("Y-m-d H:i:s",strtotime(str_replace('/','-',$date)))
更简单的方法是直接在MySQL查询中格式化日期,而不是PHP。请参阅MySQL手册中的DATE_FORMAT条目。
如果更愿意在PHP中完成,则需要date函数,但必须首先将数据库值转换为时间戳。
这将格式化SQL查询中的字段:
SELECT DATE_FORMAT( `fieldname` , '%d-%m-%Y' ) FROM tablename
我建议的方法如下。首先,从一个mysql格式的字符串创建一个基本的datetime对象;然后按你喜欢的方式格式化。幸运的是,mysql datetime是符合iso8601标准的,所以代码本身看起来非常简单和优雅。但是请记住,datetime列没有时区信息,因此需要适当地转换它。
代码如下:
(new ISO8601Formatted(
new FromISO8601('2038-01-19 11:14:07'),
'm/d/Y h:iA'
))
->value();
它输出01/19/2038 11:14AM——希望是你所期望的。
这个例子使用了蛋白库。如果你喜欢,你可以再看一些。
取决于你的MySQL datetime配置。典型格式:2011-12-31 07:55:13。这个非常简单的函数应该有魔力:
function datetime()
{
return date( 'Y-m-d H:i:s', time());
}
echo datetime(); // display example: 2011-12-31 07:55:13
或者更高级一点来匹配问题。
function datetime($date_string = false)
{
if (!$date_string)
{
$date_string = time();
}
return date("Y-m-d H:i:s", strtotime($date_string));
}