在MySQL/PHP查询中有效显示strtotime()



这是我的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

相关内容

  • 没有找到相关文章

最新更新