【发布时间】:2021-02-18 11:29:45
【问题描述】:
我有一个名为“recentdata”的表,其中包含三列 TagID、Timestam 和 GateNO。我正在尝试从特定行的 Timestamp 变量中提取时间。我通过 php 代码发送所有数据。
基本上我首先存储数据,然后我想读回时间戳并提取时间。
这是我的代码 sn-p:
$sql = "SELECT Timestamp FROM recentdata Where TagID='".$tagID."'";
$retval = mysqli_query($this->link,$sql) or die('Errant query: '.$sql);
while($row = mysqli_fetch_array($retval, MYSQLI_ASSOC)){
echo "Old Timestamp: {$row['Timestamp']}<br>";
}
//$old_time = strtotime($row['Timestamp']);
//$time1 = date('Gi.s', $RTCtimestamp);
//$time2 = date('Gi.s', $old_time);
list($date1, $time1) = explode('%20', date('d-m-Y%20Gi.s', $RTCtimestamp)); //Line 31
list($date2, $time2) = explode(' ', date('d-m-Y Gi.s', $row['Timestamp'])); //Line 32
我已经提到了代码 cmets 中出现以下错误的行号:
Old Timestamp: 2020/02/02 12:3:24
Notice: A non well formed numeric value encountered in C:\Apache24\htdocs\RFID\connect4.php on line 31
Notice: Trying to access array offset on value of type null in C:\Apache24\htdocs\RFID\connect4.php on line 32
Minutes:-0.55666666666667
以下是发送到变量的内容: $RTCtimestamp = '2020/02/02%2012:3:24' (这个时间戳是我发送到表的时间戳。这里,“%20”是为空间而写的,因为它在浏览器搜索选项卡中的外观) $row['Timestamp'] = '2020/02/02 12:3:24'(这个时间戳是从MySQL表中读取的)
我也尝试过使用 strtotime 功能(注释区的代码中也提供了该功能) 但是,它给出了相同的两个错误。有没有办法解决这个问题?请帮我找出我在这里做错了什么。
【问题讨论】:
-
如果
$RTCtimestamp = '2020/02/02%2012:3:24'不是时间戳,并且date()要求参数2 是时间戳,您可能需要重新考虑 -
请发
var_dump($RTCtimestamp);并告诉我们,谢谢 -
据我了解,
$row['Timestamp']不是时间戳,而是以某种格式表示日期的字符串。你能告诉我们那是什么格式吗? -
我没有看到您在代码中的任何位置也设置了 $RTCtimestamp,正如@RiggsFolly 建议的 var_dump($RTCtimestamp) 并向我们展示的那样。
-
@RiggsFolly,我尝试做
var_dump($RTCtimestamp);,结果如下:string(18) "2020/02/02 12:3:24".var_dump($row['Timestamp']);我收到此错误:Trying to access array offset on value of type null in C:\Apache24\htdocs\RFID\connect4.php on line 32 NULL