Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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格式化日期输出 我是PHP新手,不认为自己是程序员。我正在处理我的第一个数据库驱动操作,并且很难将日期输出正确格式化。设置日期格式的行似乎被忽略。我做错什么了吗_Php_Arrays_Date - Fatal编程技术网

用PHP格式化日期输出 我是PHP新手,不认为自己是程序员。我正在处理我的第一个数据库驱动操作,并且很难将日期输出正确格式化。设置日期格式的行似乎被忽略。我做错什么了吗

用PHP格式化日期输出 我是PHP新手,不认为自己是程序员。我正在处理我的第一个数据库驱动操作,并且很难将日期输出正确格式化。设置日期格式的行似乎被忽略。我做错什么了吗,php,arrays,date,Php,Arrays,Date,这是页面上的输出: Comment from: Jeremiah 1289594028 here is my comment 代码如下: <?php $name = $_POST['name']; $comment = $_POST['comment']; if($name && $comment and ereg("^[A-Za-z0-9' -]+$",$name) and ereg("^[A-Za-z0-9' -,.:;()!?&

这是页面上的输出:

Comment from: Jeremiah
1289594028

here is my comment
代码如下:

<?php

    $name = $_POST['name'];
    $comment = $_POST['comment'];


    if($name && $comment and ereg("^[A-Za-z0-9' -]+$",$name) and ereg("^[A-Za-z0-9' -,.:;()!?&#@'/]+$",$comment))

    {
        mysql_query("insert into pilot_comments (name,comment,date,page) values ('$name', '$comment',NOW(),'challenge1')");
    }

    elseif($_POST['submitted']==1) 

    { 
        echo "<img src='images/structure/commenting_spacer.png' height='1' width='249'>";

        echo "<br /><br /><div style='width:209px; background-color:#ff0000; padding:20px'><span class='white bold fourteen'>Uh oh! You may have:<br /><br />(1) Entered special characters, or <br /><br />(2) Not entered text into both fields.</span><br /><br /><span class='white twelve'>(This helps me fight spam. Thanks for understanding.)</span></div><br /><br />";
    }

?>

<?php

    $result = mysql_query("select name,comment,UNIX_TIMESTAMP(date) from pilot_comments where page='challenge1' order by date desc");

    echo mysql_error();

    $date = date("l, F j, Y \a\t g:i:s \P\S\T",$date);

    while(list($name,$comment,$date) = mysql_fetch_row($result))

    {
        echo "<img src='images/structure/commenting_spacer.png' height='1' width='249'>";

        echo "<div STYLE='word-wrap:break-word;width:249px;left:0px'><span class='twelve gray'><br />Comment from: </span><span class='twelve gray bold'>$name</span></div>";

        echo "<span class='ten light-gray bold'>$date<br /><br /></span>";

        echo "<div STYLE='word-wrap:break-word;width:249px;left:0px'><span class='fourteen green bold'>$comment</span></div><br /><br />";
    }
?>
移动此行:

$date = date("l, F j, Y \a\t g:i:s \P\S\T",$date);
在while循环中(在每次迭代中都会创建一个新的
$date
,因此格式会丢失):

顺便说一下,您的代码容易受到攻击。在现实世界中使用脚本之前,您应该通过将每次提到的
$\u POST
都包装在转义函数中来解决此问题,如下所示:

$name = mysql_real_escape_string($_POST["name"]);
移动此行:

$date = date("l, F j, Y \a\t g:i:s \P\S\T",$date);
在while循环中(在每次迭代中都会创建一个新的
$date
,因此格式会丢失):

顺便说一下,您的代码容易受到攻击。在现实世界中使用脚本之前,您应该通过将每次提到的
$\u POST
都包装在转义函数中来解决此问题,如下所示:

$name = mysql_real_escape_string($_POST["name"]);

看起来您没有显示错误,因为在代码中,您至少应该得到$date的警告,这在第一次使用时是未定义的

这就像驾驶时没有任何仪表板一样


如果您在开发环境中工作,请确保显示错误(display_errors apache设置),并且您的错误级别较高(将error_reporting设置设置为-1以获得最大错误输出)。

看起来您不会显示错误,因为在代码中,您至少应该得到$date的警告,第一次使用时未定义

这就像驾驶时没有任何仪表板一样


如果您在开发环境中工作,请确保显示错误(显示错误apache设置),并且您的错误级别较高(将错误报告设置设置为-1以获得最大错误输出)。

您需要移动
$date=date(“l,F j,Y\a\t g:i:s\p\s\t”,“$date”)进入
循环,而
循环

在循环之外,对于循环的每次迭代,数据库中的值不会存储在
$date


您还需要在查询中将
UNIX\u TIMESTAMP(date)
更改为
UNIX\u TIMESTAMP(date)as date
,以便变量以您的代码期望的名称保存在结果行中。

您需要移动
$date=date(“l,F j,Y\a\t g:i:s\p\s\t”,$date)进入
循环,而
循环

在循环之外,对于循环的每次迭代,数据库中的值不会存储在
$date


您还需要在查询中将
UNIX\u TIMESTAMP(date)
更改为
UNIX\u TIMESTAMP(date)as date
,以便变量以您的代码期望的名称保存在结果行中。

当然,MySQL本身完全能够进行日期格式化:。最好在数据库端执行,并保存一个双重转换(mysql-date->string而不是mysql->php->string)。谢谢。工作没有问题。谢谢你加强了我的安全!当然,MySQL完全可以自己进行日期格式化:。最好在数据库端执行,并保存一个双重转换(mysql-date->string而不是mysql->php->string)。谢谢。工作没有问题。谢谢你加强了我的安全!