Php日期:评估-1天

Php日期:评估-1天,php,codeigniter,date,Php,Codeigniter,Date,我的项目中有一个事件,其开始日期存储在数据库中。 我想在活动开始前一天和活动活跃期间宣传活动: 所以我做了 <?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_adv

我的项目中有一个事件,其开始日期存储在数据库中。 我想在活动开始前一天和活动活跃期间宣传活动:

所以我做了

<?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
,数据库部分还可以,但我只想知道如何减去$today$event\u start\u date来确定广告的有效期

PHP函数
date\u diff($today,$event\u valid\u date)
给我一个错误提示:


arg 1应为日期类型,提供字符串

这将解决上述问题:

$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";
}
阅读您的问题-您也可以使用此改进的代码在事件完成后停止显示事件(我做了一些假设-但您明白了):

$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";
}
$now=strotime(“now”);
$event_advised_date=strotime('-1天',strotime($event->event_start_date));
$event\u end\u date=strottime($event->event\u end\u date);
如果($now>$event\u date)和($now<$event\u end\u date))
{
回应“表演事件”;
}
其他的
{
echo“对于该事件来说太早或太晚”;
}

日期('Y-m-d',($event\u start\u date-86400))?是在日期之前使用日期('Y-m-d')和strotime()。。对于这两个日期,..@BhavinRana我已经有了,如果你看到,$today和$event\u valid\u advision\u date都使用date('Y-m-d')(int)-为日期获取Unix时间戳?@user1537158-只是一个小建议:不需要两次调用
strotime
,你可以简单地这样做:
strotime({$event->event\u start\u date}-1天)