datetime php时间戳转时间 - 使用PHP将MySQL日期时间转换为另一种格式





php格式化时间戳 php字符串转时间戳 (15)


$date = "'".date('Y-m-d H:i:s', strtotime(str_replace('-', '/', $_POST['date'])))."'";

我在MySQL中有一个datetime列。

如何使用PHP将其转换为显示为mm / dd / yy H:M(AM / PM)




使用date功能:

<?php
    echo date("m/d/y g:i (A)", $DB_Date_Field);
?>



如果你使用PHP 5,你也可以试试

$oDate = new DateTime($row->createdate);
$sDate = $oDate->format("Y-m-d H:i:s");



为了在PHP中正确格式化一个DateTime对象来存储在MySQL中,使用MySQL使用的标准格式,即ISO 8601

PHP自5.1.1版本以来已将这种格式存储为常量,我强烈建议使用它,而不是每次手动输入字符串。

$dtNow = new DateTime();
$mysqlDateTime = $dtNow->format(DateTime::ISO8601);

这和其他PHP DateTime常量列表可在http://php.net/manual/en/class.datetime.php#datetime.constants.types




将从MySQL检索的日期转换为请求的格式( mm/dd/yy H:M (AM/PM) ):

// $datetime is something like: 2014-01-31 13:05:59
$time = strtotime($datetimeFromMysql);
$myFormatForView = date("m/d/y g:i A", $time);
// $myFormatForView is something like: 01/31/14 1:05 PM

请参阅PHP日期格式化选项来调整格式。




这将工作...

echo date('m/d/y H:i (A)',strtotime($data_from_mysql));



更简单的方法是直接在MySQL查询中格式化日期,而不是PHP。 请参阅DATE_FORMATMySQL手册条目

如果你想用PHP来做,那么你需要date函数,但是你必须首先将数据库值转换为时间戳。




使用PHP版本4.4.9和MySQL 5.0,这为我工作:

$oDate = strtotime($row['PubDate']);
$sDate = date("m/d/y",$oDate);
echo $sDate

PubDateMySQL的列。




最后,对于PHP 5.3及更高版本,正确的解决方案

$date = \DateTime::createFromFormat('Y-m-d H:i:s', $mysql_source_date);
echo $date->format('m/d/y h:i a');



取决于你的MySQL日期时间配置。 通常: 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));
}



SELECT 
 DATE_FORMAT(demo.dateFrom, '%e.%M.%Y') as dateFrom,
 DATE_FORMAT(demo.dateUntil, '%e.%M.%Y') as dateUntil
FROM demo

如果您不想更改PHP代码中的每个函数,为了显示预期的日期格式,请在源代码中更改它 - 数据库。

像上面的例子那样用as运算符命名行是很重要的(如dateFrom,如dateUntil)。 你在那里写的名字是名字,这些行将在你的结果中被调用。

这个例子的输出是

[月份的日期,数字(0..31)]。[月份名称(1月... 12月)]。[年份,数字,4位数字]

例如:2015年8月5日

用选定的分隔符更改点并检查DATE_FORMAT(日期,格式)函数以获取更多日期格式。




这应该格式化SQL查询中的字段:

SELECT DATE_FORMAT( `fieldname` , '%d-%m-%Y' ) FROM tablename



如果您正在寻找将日期标准化为MySQL格式的方法,请使用以下内容

$phpdate = strtotime( $mysqldate );
$mysqldate = date( 'Y-m-d H:i:s', $phpdate );

$phpdate = strtotime( $mysqldate )接受一个字符串,并执行一系列启发式操作以将该字符串转换为unix时间戳。

$mysqldate = date( 'Ymd H:i:s', $phpdate )使用该时间戳和PHP的date函数将该时间戳恢复为MySQL的标准日期格式。

编者注 :这个答案在这里是因为一个原来的问题,混淆的措辞,并且一般谷歌有用这个答案提供,即使它没有'直接回答现在存在的问题)




您也可以让查询以Unix时间戳记的形式返回时间。 这将摆脱调用strtotime()的需要,并使事情在PHP方面稍微密集一点...

select  UNIX_TIMESTAMP(timsstamp) as unixtime from the_table where id = 1234;

然后在PHP中使用date()函数以任意方式格式化它。

<?php
  echo date('l jS \of F Y h:i:s A', $row->unixtime);
?>

要么

<?php
  echo date('F j, Y, g:i a', $row->unixtime);
?>

我喜欢这种方法,而不是使用MySQLDATE_FORMAT函数,因为它允许您重复使用相同的查询来获取数据,并允许您更改PHP中的格式。

很烦人有两个不同的查询只是为了改变日期在UI中的显示方式。




这个问题已经被多次访问过,但没有提到箭头 ,它提供了许多有用的日期和时间函数。 这部分代码为问题提供了答案,并显示箭头也能够轻松地格式化日期并显示其他语言环境的信息。

>>> import arrow
>>> dateStrings = [ 'Jun 1  2005 1:33PM', 'Aug 28 1999 12:00AM' ]
>>> for dateString in dateStrings:
...     dateString
...     arrow.get(dateString.replace('  ',' '), 'MMM D YYYY H:mmA').datetime
...     arrow.get(dateString.replace('  ',' '), 'MMM D YYYY H:mmA').format('ddd, Do MMM YYYY HH:mm')
...     arrow.get(dateString.replace('  ',' '), 'MMM D YYYY H:mmA').humanize(locale='de')
...     
'Jun 1  2005 1:33PM'
datetime.datetime(2005, 6, 1, 13, 33, tzinfo=tzutc())
'Wed, 1st Jun 2005 13:33'
'vor 11 Jahren'
'Aug 28 1999 12:00AM'
datetime.datetime(1999, 8, 28, 0, 0, tzinfo=tzutc())
'Sat, 28th Aug 1999 00:00'
'vor 17 Jahren'

有关更多信息,请参见http://arrow.readthedocs.io/en/latest/







php mysql datetime