php - 尝试使用 mysql db 中的时间戳时 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,不行,我也尝试将它强制转换为整数也是同样的问题。有人可以为我指出正确的方向吗?谢谢。
解决方案
您的问题是,如果date_create
失败,则$flsrfc
永远不会设置。您应该将该代码重写为:
if (($flsdt = date_create($flstart)) !== false) {
$flsrfc = date_format($flsdt, "Y-m-d\TH:i");
}
else {
$flsrfc = date("Y-m-d\TH:i");
}
请注意,您可以else
通过调用来简化该部分,date
因为它的默认输入是time()
.
至于失败的原因date_create
,这将取决于表中数据的格式。如果您将其存储为 MySQLdate
或datetime
类型,则应该没有问题。否则,您可能需要使用date_create_from_format
适当的格式参数来匹配表中存储的内容。
推荐阅读
- javascript - 使用 JavaScript 进行 Telnet 连接
- typescript - Typescript 访问对象属性类型而不触发循环引用
- prometheus - 带有 Prometheus 查询的 Grafana Ad-hoc 过滤器
- php - 使用 Scandir 间歇性刷新文件链接问题
- sql - 一种在两个不同表中将 SQL 位与 char 进行比较的方法
- python - 当索引同时是时间戳和日期时间时,将所有索引值转换为日期时间
- java - 为什么在 JSON 有效负载请求正文中发送 http 请求元数据被认为是不好的做法,而最好使用请求标头?
- python - 如何在 Azure 机器学习 Juypyter Notebooks 中安装 python ta-lib 库
- python - 如何更改我的代码以从此列表中绘制表格?
- javascript - url.content 不加载图像 javascript 和 asp.net mvc