MYSQL时间戳添加日期\格式时输出为空,PHP冲突?
使用下面的shortcode函数,我让代码通过查询数据库来构建一个表。一切正常。但是,当我向MYSQL时间戳添加日期\格式时输出为空,PHP冲突?,php,mysql,wordpress,Php,Mysql,Wordpress,使用下面的shortcode函数,我让代码通过查询数据库来构建一个表。一切正常。但是,当我向TimeStamp列添加任何类型的格式时,例如DATE\u格式或TIME,该列的输出只会变为空白。控制台中没有要查看的错误。我试图只提取时间,并将其设置为12小时格式,而不是24小时设置中日期和时间的典型时间戳格式 是否与某些PHP冲突导致它不显示时间戳 function test2() { global $wpdb; $results = $wpdb->get_resul
TimeStamp
列添加任何类型的格式时,例如DATE\u格式或TIME,该列的输出只会变为空白。控制台中没有要查看的错误。我试图只提取时间,并将其设置为12小时格式,而不是24小时设置中日期和时间的典型时间戳格式
是否与某些PHP冲突导致它不显示时间戳
function test2() {
global $wpdb;
$results = $wpdb->get_results("SELECT `name`, `partysize`, `phonenumber`, `emailaddress`, DATE_FORMAT(`Time_stamp`, '%h %i' ), `Wait`, `currentstatus` FROM mytablename m RIGHT JOIN (SELECT wdt_ID, CONCAT(ROUND(Time_to_sec(TIMEDIFF (NOW() ,`Time_stamp`))/60,0), ' Min') AS Wait FROM mytablename) as t on m.wdt_ID = t.wdt_ID WHERE Time_stamp >= date_sub(now(),interval 3 hour) ");
if(!empty($results))
{
echo "<table width='100%' border='0' style='display:inline-table'>
<th>Name</th>
<th>Party Size</th>
<th>Phone Number</th>
<th>Email Address</th>
<th>Time Stamp</th>
<th>Status</th>
<th>Wait</th>
<th>Action</th> ";
echo "<tbody>";
foreach($results as $row){
echo "<tr>";
//echo "<td>" . $row->wdt_ID . "</td>";
echo "<td>" . $row->name . "</td>";
echo "<td>" . $row->partysize . "</td>";
echo "<td>" . $row->phonenumber . "</td>";
echo "<td>" . $row->emailaddress . "</td>";
echo "<td>" . $row->Time_stamp . "</td>";
echo "<td id='tdid_".$row->wdt_ID."'>" . $row->currentstatus . "</td>";
echo "<td>" . $row->Wait . "</td>";
echo '<td> <a href="javascript:void(0)" class="button seated-btn" onclick="seatclick('.$row->wdt_ID.')" data-id="'.$row->wdt_ID.'"></a></td>';
echo "</tr>";
}
echo "</tbody>";
echo "</table>";
}
}
add_shortcode('test2', 'test2');
和日期格式(时间戳:
Array
(
[0] => stdClass Object
(
[wdt_ID] => 9
[name] => test2
[partysize] => 3
[phonenumber] => 465
[emailaddress] => dis@doc.com
[Time_stamp] => 2020-09-24 19:02:47
[currentstatus] => Waiting
[Wait] => 138 Min
)
)
Array
(
[0] => stdClass Object
(
[DATE_FORMAT(Time_stamp, '%h %i %p')] => 07 02 PM
)
)
在数据库中,您需要添加一种时间戳UTF8 general_ci。这可能会有所帮助 并显示在数组的变量转储`或打印中显示的内容 特殊代码是
print_r($your_array);
或
echo';
打印(你的数组);
回声';
是否与某些PHP冲突导致它不显示时间戳
function test2() {
global $wpdb;
$results = $wpdb->get_results("SELECT `name`, `partysize`, `phonenumber`, `emailaddress`, DATE_FORMAT(`Time_stamp`, '%h %i' ), `Wait`, `currentstatus` FROM mytablename m RIGHT JOIN (SELECT wdt_ID, CONCAT(ROUND(Time_to_sec(TIMEDIFF (NOW() ,`Time_stamp`))/60,0), ' Min') AS Wait FROM mytablename) as t on m.wdt_ID = t.wdt_ID WHERE Time_stamp >= date_sub(now(),interval 3 hour) ");
if(!empty($results))
{
echo "<table width='100%' border='0' style='display:inline-table'>
<th>Name</th>
<th>Party Size</th>
<th>Phone Number</th>
<th>Email Address</th>
<th>Time Stamp</th>
<th>Status</th>
<th>Wait</th>
<th>Action</th> ";
echo "<tbody>";
foreach($results as $row){
echo "<tr>";
//echo "<td>" . $row->wdt_ID . "</td>";
echo "<td>" . $row->name . "</td>";
echo "<td>" . $row->partysize . "</td>";
echo "<td>" . $row->phonenumber . "</td>";
echo "<td>" . $row->emailaddress . "</td>";
echo "<td>" . $row->Time_stamp . "</td>";
echo "<td id='tdid_".$row->wdt_ID."'>" . $row->currentstatus . "</td>";
echo "<td>" . $row->Wait . "</td>";
echo '<td> <a href="javascript:void(0)" class="button seated-btn" onclick="seatclick('.$row->wdt_ID.')" data-id="'.$row->wdt_ID.'"></a></td>';
echo "</tr>";
}
echo "</tbody>";
echo "</table>";
}
}
add_shortcode('test2', 'test2');
您试图输出什么?$row->Time\u stamp
现在,您的原始对象具有这样的属性,如调试输出所示:
[DATE_FORMAT(Time_stamp, '%h %i %p')] => 07 02 PM
现在仔细看看你的第二个调试输出,里面现在有什么
$results = $wpdb->get_results("SELECT …, DATE_FORMAT(`Time_stamp`, '%h %i' ) AS Time_stamp, …");
这是一个与以前完全不同的属性名称
现在,虽然您可以尝试通过大括号语法($row->{'DATE\u FORMAT(Time\u stamp,'%h%i%p')')}
)访问该列,但通过在查询中指定别名,在结果集中为该列指定一个不同的名称更有意义:
使用该别名,您将能够再次以$row->Time\u stamp
的形式访问该值
控制台中没有要查看的错误
浏览器控制台显示客户端错误,但您的错误在服务器端
您应该启用正确的PHP错误报告-在这种情况下,PHP会告诉您,您正在尝试访问一个不存在的对象属性。有关详细信息,请参阅。列
Time\u stamp
的数据类型是什么?@GMB它是一个类型-timestamp,因为它的默认值是CURRENT\u timestamp谢谢!我很想添加UTF,但因为它是不为null,它将不接受任何排序规则。我正在使用上面的编辑更新打印结果。谢谢。也许我没有解释清楚。我一直试图通过在名为time_stamp的列中添加DATE_格式或time,从time_stamp中仅提取12小时格式的时间。当我在MYSQL查询中添加其中任何一个时,它会清空e再次回归。有趣的是,上面的方法奏效了,但我不清楚为什么?
$results = $wpdb->get_results("SELECT …, DATE_FORMAT(`Time_stamp`, '%h %i' ) AS Time_stamp, …");