2012-08-09 82 views
1

我有我的項目中開始日期存儲在數據庫中的事件。 我要宣傳有關該事件的前一天將要啓動事件,在天的事件是活躍:Php日期:評估-1天

,所以我做了

<?php $today = date('Y-m-d'); 
    $event_start_date = $event->event_start_date; 
    $event_valid_advertise_date = strtotime ('-1 day' , strtotime ($event_start_date)) ; 
    $event_valid_advertise_date = date ('Y-m-d' , $event_valid_advertise_date); 
?> 

我現在很卡;我正在與codeigniter和數據庫部分是好的,但我只是想知道如何減去$今天$ event_start_date以確定廣告的有效期限。

PHP函數date_diff($today,$event_valid_date)給了我一個錯誤說:

arg 1 should be of type date , string provided

+1

'date('Y-m-d',($ event_start_date - 86400));'? – dogglebones 2012-08-09 07:14:46

+0

yes date date('Ymd')and strtotime()before date_diff().. for date .. – 2012-08-09 07:16:00

+0

@BhavinRana我已經有了,如果您看到$ today和$ event_valid_advertise_date都使用date('Ym-d') – 2012-08-09 07:18:37

回答

2

這將解決你的問題上面:

$now = strtotime("now"); 
$event_advertise_date = strtotime('-1 day', strtotime($event->event_start_date)); 
if ($now > $event_advertise_date) 
{ 
    echo "show event"; 
} 
else 
{ 
    echo "too early for this event"; 
} 

讀你的問題 - 你也可以使用這種改進代碼在完成後停止展示事件(我做了一些假設 - 但你明白了):

$now = strtotime("now"); 
$event_advertise_date = strtotime('-1 day', strtotime($event->event_start_date)); 
$event_end_date = strtotime($event->event_end_date); 
if (($now > $event_advertise_date) && ($now < $event_end_date)) 
{ 
    echo "show event"; 
} 
else 
{ 
    echo "too early or late for this event"; 
} 
+0

完美,工作感謝你 – 2012-08-09 10:02:26

+3

@ user1537158 - 只是一個小建議:而不是兩次調用'strtotime',你可以簡單地這樣做:'strtotime(「{$ event-> event_start_date} -1 day」);'。 – Mischa 2012-08-09 10:09:08