[英]Displaying strtotime() effectively in MySQL/PHP query
這是我的 PHP/MySQL 查詢,如 在 PHP/MySQL 中顯示鏈接? :
我承認,我忘記了如何有效地使用 strtotime() function,因為我想以這種格式顯示我的演出時間:
06:00
10:00
(最后沒有:00,例如 10:00:00)
代碼現在顯示此錯誤:
解析錯誤:語法錯誤,第 11 行 C:\www\vhosts\localradio\schedsun.php 中的意外 T_ECHO
我已經修復了上一個問題中的錯誤,如果我想將時間顯示為:
上午6:00
06:00
早上 6 點
(只是為了測試,在Pastebin上的代碼參數內)。
我基本上只是在問,因為我正在 PHP 的其他部分進行自己的進修課程,花了這么長時間學習 arrays 等。
最后,我是否需要作為變量 - 還是不需要 $result_ar ?
感謝您對最后一個問題的幫助!
您可以直接在 MySQL中執行此操作,這樣可以節省您 strtotime() 的解析開銷,並保證產生正確的結果,因為 strtotime 偶爾會猜錯。
SELECT DATE_FORMAT(yourdatefield, '%h:%i') ...
PHP function strtotime() 有以下用法:
int strtotime ( string $time [, int $now ] )
這意味着您傳入時間的字符串值,以及可選的當前時間值,即 UNIX 時間戳。 返回的值是 integer,它是 UNIX 時間戳。
這種用法的一個示例如下,其中傳遞給 strtotime() 的日期可能是來自數據庫查詢或類似的日期:
$ts = strtotime('2007-12-21');
這會將值 1198148400 返回到 $ts 變量中,這是 2007 年 12 月 21 日日期的 UNIX 時間戳。這可以使用 date() function 來確認,如下所示:
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
strtotime()
會給你一個時間戳,你使用 function date()
來格式化時間和/或日期的顯示。
06:00
<?php echo date('H:i', strtotime($result_ar['airtime'])); ?>
上午6:00
<?php echo date('g:ia', strtotime($result_ar['airtime'])); ?>
早上 6 點
<?php echo date('ga', strtotime($result_ar['airtime'])); ?>
正如@Marc B 建議的那樣,在 MySQL 中執行此操作。
更改此行
$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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.