[英]a little more help in this simple script about date() function in PHP
為什么不做這項工作? 這是一個while循環:
$postdate = date( "j F", strtotime( $row['insert_date'] ) );
if ($postdate == date("j F")) {$postdate = "today"};
$table .= bla bla bla "$postdate";
它在瀏覽器的“ if語句行”上給出了錯誤...
$ postdate類似於10月14日的if語句!
謝謝
分號必須位於大括號內,如下所示:
if ($postdate == date("j F")) {$postdate = "today";}
您的$table .= bla bla bla "$postdate";
行是錯誤的,應顯示為:
$table .= 'bla bla bla' . $postdate;
您的第三行格式錯誤。 嘗試這個:
$table .= "bla bla bla $postdate";
您可以讓MySQL服務器進行比較(如果願意)
SELECT
x,y,z,insert_date, Date(insert_date)=Curdate() as today
FROM
foo
WHERE
somecondition....
如果日期等於“今天”,則today
的字段將包含1,否則為0。
編輯:您只是比較時間戳的日期/月份部分。 您可以使用Day() / Month()函數提取這些部分,盡管imo解決方案以這種方式失去了一些“優雅”。 我會考慮類似
SELECT ... (Date(insert_date)-Curdate()) mod 10000 as today ...
丑陋的駭客:(
例如
$pdo = new PDO('mysql:host=...;dbname=...', '...', '...');
$pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
// example table
$pdo->exec('CREATE TEMPORARY TABLE foo (id int auto_increment, insert_date TIMESTAMP, primary key(id))');
// insert three rows, only the second is "for today"
$pdo->exec('INSERT INTO foo (insert_date) VALUES (Now()-Interval - 2 day), (Now()), (Now()-Interval + 1 day)');
foreach( $pdo->query('SELECT id, insert_date, Date(insert_date)=Curdate() as today FROM foo') as $row ) {
echo
$row['today'] ? '+' : '-',
$row['id'], ' ', $row['insert_date'], "\n";
}
打印(現在在我的機器上)
-1 2009-10-21 17:03:55
+2 2009-10-19 17:03:55
-3 2009-10-18 17:03:55
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.