簡體   English   中英

在 MySQL/PHP 查詢中有效顯示 strtotime()

[英]Displaying strtotime() effectively in MySQL/PHP query

這是我的 PHP/MySQL 查詢,如 在 PHP/MySQL 中顯示鏈接?

http://pastebin.com/5Td9Bybn

我承認,我忘記了如何有效地使用 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

選項1

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'])); ?>

在 php.net 上閱讀date()及其格式


選項 2

正如@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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM