猿问

尝试使用来自 mysql 数据库的时间戳时,PHP date_create 失败

我只是想找出为什么我不断收到此错误:


Notice: Undefined variable: flsrfc

现在 $flsrfc 设置如下:


if (date_create($flstart)) {

   $flsdt = date_create($flstart);

   if ($flsdt) {

      $flsrfc = date_format($flsdt, "Y-m-d\TH:i");

   } else {

      $flsrfc = date_format(date_create(time()), "Y-m-d\TH:i");

   }

}

现在我遇到的问题是尝试使用我尝试获取的格式化时间来设置本地日期时间输入。这是该代码以及错误说明其来源的代码。我的猜测是 date_create 函数不起作用,但我不知道为什么。


$HTMLOUT .= '<input name="fls" value="'.$flsrfc.'" size="30" type="datetime-local" />';

我确保 $flstart 从数据库中获取数据,这是它的代码:


$flstart = mysqli_fetch_row(mysqli_query("SELECT value FROM config WHERE name = 'flstart'"))[0];

我已经阅读了许多 php 的手册页和文档,试图找出原因,我在时间戳上尝试了 strtotime,不行,我也尝试将它强制为整数,这也是同样的问题。有人能给我指明正确的方向吗?谢谢。


蓝山帝景
浏览 76回答 1
1回答

ITMISS

您的问题是,如果date_create失败,则$flsrfc永远不会设置。您应该将该代码重写为:if (($flsdt = date_create($flstart)) !== false) {&nbsp; &nbsp; $flsrfc = date_format($flsdt, "Y-m-d\TH:i");}&nbsp;else {&nbsp; &nbsp; $flsrfc = date("Y-m-d\TH:i");}请注意,您可以else通过调用来简化该部分,date因为它的默认输入是time().就失败原因而言date_create,这取决于表中数据的格式。如果您将其存储为 MySQLdate或datetime类型,则应该没有问题。否则,您可能需要使用date_create_from_format适当的格式参数来匹配表中存储的内容。
随时随地看视频慕课网APP
我要回答