这是我的PHP/MySQL查询,正如在显示PHP/MySQL链接中提到的?:
http://pastebin.com/5Td9Bybn 我承认,我已经忘记了如何有效地使用strtotime()函数,因为我想以这种格式显示我的显示时间: 06:00时 10点(末尾没有:00,例如10:00:00)
代码现在显示这个错误:
解析错误:语法错误,意外T_ECHO in C:wwwvhostslocalradioschedsun.php on line 11
我已经修复了上一个问题中的错误,如果我想显示时间,我该如何调整这个:
6点 06:00时早上6(仅为测试起见,在Pastebin上的代码参数内)。
我的问题很简单,因为我在做PHP其他部分的复习课程,花了很长时间学习数组等。
最后,我是否需要作为变量-或者不需要$result_ar ?
谢谢你在最后一个问题上的帮助!
您可以直接在MySQL中执行此操作,这样可以节省strtotime()的解析开销,并保证生成正确的结果,因为strtotime有时会猜错。
SELECT DATE_FORMAT(yourdatefield, '%h:%i') ...
PHP函数strtotime()的用法如下:
int strtotime ( string $time [, int $now ] )
这意味着您传入一个时间字符串值,以及一个可选的当前时间值,这是一个UNIX时间戳。返回的值是一个整数,是UNIX时间戳。
这种用法的示例如下,其中传递给strtotime()的日期可能是来自数据库查询或类似的日期:
$ts = strtotime('2007-12-21');
这将在$ts变量中返回值1198148400,这是2007年12月21日的UNIX时间戳。这可以使用date()函数确认,如下所示:
echo date('Y-m-d', 1198148400);
// echos 2007-12-21
strtotime()能够解析各种各样的字符串并将它们转换为适当的时间戳,使用实际日期和字符串,如"下周","下周二","上周四","2周前"等。下面是一些例子:
$ts = strtotime('21 december 2007');
echo $ts, '<br />';
echo date('Y-m-d', $ts), '<br />';
这将显示以下内容:
1198148400 2007-12-21
如果今天是12月21日,那么以下内容:
$ts = strtotime('next week');
echo $ts, '<br />';
echo date('Y-m-d', $ts), '<br />';
$ts = strtotime('next tuesday');
echo $ts, '<br />';
echo date('Y-m-d', $ts), '<br />';
$ts = strtotime('last thursday');
echo $ts, '<br />';
echo date('Y-m-d', $ts), '<br />';
$ts = strtotime('2 weeks ago');
echo $ts, '<br />';
echo date('Y-m-d', $ts), '<br />';
$ts = strtotime('+ 1 month');
echo $ts, '<br />';
echo date('Y-m-d', $ts), '<br />';
将显示以下内容:
1199006542
2007-12-30
1198494000
2007-12-25
1198062000
2007-12-20
1197192142
2007-12-09
1201080142
2008-01-23
选项1
strtotime()
将给你一个时间戳,你使用date()
函数来格式化时间和/或日期的显示。
06:00时
<?php echo date('H:i', strtotime($result_ar['airtime'])); ?>
6点<?php echo date('g:ia', strtotime($result_ar['airtime'])); ?>
6点
<?php echo date('ga', strtotime($result_ar['airtime'])); ?>
在php.net上阅读date()
及其格式。
选项2
在MySQL中这样做,正如@Marc B建议的。
改变这一行
$result = mysql_query("SELECT * FROM presenters1;", $connection) or die("error querying database");
$result = mysql_query("SELECT *, TIME_FORMAT(airtime, '%h:%i') `airtime` FROM presenters1;", $connection) or die("error querying database");
然后,修改这一行:
<div class="time"><? php echo strotime ('H') $result_ar['airtime']; ?></div>
<div class="time"><?php echo $result_ar['airtime']; ?></div>
在<?
和php之间有一个空格。我认为这导致了意想不到的回波错误。你应该有<?php