Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将MySQL时间戳转换为更可读的格式_Php_Mysql - Fatal编程技术网

Php 将MySQL时间戳转换为更可读的格式

Php 将MySQL时间戳转换为更可读的格式,php,mysql,Php,Mysql,基本上,我希望将时间戳字段从:2012-03-14 23:14:58格式转换为更可读的2012年3月15日下午23:14格式 我经历过这件事,但我真的无法理解。我已经包含了我当前的PHP脚本,我正在使用它将MySQL数据库数据解析到Android应用程序中 <?php $con = mysql_connect("*******", "*******", "*******"); if(!$con) { die('Could not connect: ' . mysql_error());

基本上,我希望将时间戳字段从:2012-03-14 23:14:58格式转换为更可读的2012年3月15日下午23:14格式

我经历过这件事,但我真的无法理解。我已经包含了我当前的PHP脚本,我正在使用它将MySQL数据库数据解析到Android应用程序中

<?php
$con = mysql_connect("*******", "*******", "*******");

if(!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("bluebase", $con);


$q=mysql_query("SELECT * from Comments where Category = 'General' ORDER BY Timestamp DESC");

while($e=mysql_fetch_assoc($q)) 

        $output['General'][]=$e;

    print(json_encode($output));

mysql_close();
?>

这样就可以了:

<?php
  echo date('H:i a F j, Y', strtotime($timestamp));
?>
这样就可以了:

<?php
  echo date('H:i a F j, Y', strtotime($timestamp));
?>
日期'h:i a F d,Y',标准时间'2012-03-14 23:14:58'

请注意,“d”是带前导零的日期

“h”是12小时格式,因为您希望显示AM/PM

如果不需要前导零,请使用“j”表示数字日,使用“g”表示12小时格式的小时数。

date'h:i a F d,Y',strotime'2012-03-14 23:14:58'

请注意,“d”是带前导零的日期

“h”是12小时格式,因为您希望显示AM/PM

如果您不需要前导零,请使用“j”表示数字日,使用“g”表示12小时格式的小时数。

您可以根据需要设置日期格式。只用

date('H:i a F d, Y', strtotime($timestamp));
尽管正如米洛在问题评论中指出的那样,没有理由使用24小时制和上午/下午制。

您可以根据需要设置日期格式。只用

date('H:i a F d, Y', strtotime($timestamp));

尽管正如米洛在问题评论中指出的那样,没有理由使用24小时制和上午/下午制。

您可以选择几种方式。我总是将时间作为Unix时间戳存储在数据库中,因为从那里转换很简单。如果您的数据库中已经有数据,现在更改它已经太晚了,或者您有其他理由在数据库中使用该格式的日期,那么您需要将时间转换为unix时间戳,以便在PHP日期函数中使用:

while($e=mysql_fetch_assoc($q)) {
    $e['Timestamp'] = date('h:i a F d, Y', strtotime($e['Timestamp']));
    $output['General'][]=$e;
}

。。。这将用重新格式化的时间戳覆盖时间戳字段。

您可以选择几个路径。我总是将时间作为Unix时间戳存储在数据库中,因为从那里转换很简单。如果您的数据库中已经有数据,现在更改它已经太晚了,或者您有其他理由在数据库中使用该格式的日期,那么您需要将时间转换为unix时间戳,以便在PHP日期函数中使用:

while($e=mysql_fetch_assoc($q)) {
    $e['Timestamp'] = date('h:i a F d, Y', strtotime($e['Timestamp']));
    $output['General'][]=$e;
}

。。。这将用重新格式化的时间戳覆盖时间戳字段。

23:14 pm是多余的。你不想要晚上11:14吗?你也可以使用MySQL的DATE_格式函数-晚上23:14的副本是多余的。你不想晚上11:14吗?你也可以使用MySQL DATE_格式函数-参数的副本是反向的,而且时间戳本身在这里不起作用。你需要先把它转换成秒。你的函数参数是反向的。你说得对,我切换了参数。我真丢脸。修正了。你的参数是反向的,而且时间戳本身在这里也不起作用。你需要先把它转换成秒。你的函数参数是反向的。你说得对,我切换了参数。我真丢脸。搞定了。@SmilingBlue看看杰森的答案。他把它放在你的代码里。@SmilingBlue看看杰森的答案。他把它放在你的代码里。