【问题标题】:Php Date : evaluate -1 daysPHP日期:评估-1天
【发布时间】:2012-08-09 07:11:59
【问题描述】:

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

原来如此

<?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_start_date 以确定广告的有效期.

PHP 函数date_diff($today,$event_valid_date) 给我一个错误提示:

arg 1 should be of type date , string provided

【问题讨论】:

  • date( 'Y-m-d' , ($event_start_date - 86400) ); ?
  • 是的,在 date_diff() 之前使用 date( 'Y-m-d' ) 和 strtotime() .. 用于两个日期 ..
  • @BhavinRana 我已经有了,如果你看到的话,$today 和 $ event_valid_advertise_date 都使用 date('Y-m-d')
  • (int) mktime — 获取某个日期的 Unix 时间戳?

标签: php codeigniter date


【解决方案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";
}

【讨论】:

  • @user1537158 - 只是一个小建议:您可以简单地这样做:strtotime("{$event-&gt;event_start_date} -1 day");,而不是两次调用 strtotime
猜你喜欢
  • 2019-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-17
  • 1970-01-01
  • 2021-08-09
  • 1970-01-01
  • 2016-04-16
相关资源
最近更新 更多