php检查过期日期,如果早于用户过期日期postbone到用户过期日期

时间:2014-08-19 22:51:07

标签: php validation date

我创建一些用户提交帖子,它有一个过期日期不显示, 如果用户在系统中有效,则即可覆盖帖子过期日期, 如果用户的日期大于过期日期和今天的日期,则该帖子应该有效,

在这里我将用户过期日期设置为未来,但我尝试了较旧的时间两个回复我 这个post have time to expire 我在这一点上陷入困​​境并对不起,如果有错误的拼写错误。 三江源

注意
谢谢你们所有这些代码都在运作

  $links_user = 'testuser';
  $d_vexpdate = new DateTime('2014-09-05');// user valid until date
  $d_postexp = new DateTime('2014-08-20');// post expire date 2 weeks later
  $d_postpub = new DateTime('2014-08-06');// post submit date
  $d_today = new DateTime();
  $d_old = new DateTime('-14 day');

if ($d_vexpdate > $d_today && $d_postexp < $d_today){
        echo "<br> post expire is great than today :)<br>";
      }

   }else {
    echo "hello expired - ".$links_user;

    }

1 个答案:

答案 0 :(得分:0)

strtotime('-14 days')包括当前时间,因此给出时间戳,例如2014-08-06 00:01:15其中strtotime('2014-08-06')将时间值保留为零,因为它们未被指定,即2014-08-06 00:00:00的时间戳,因此较少比到期时间戳,导致第一个条件为真。

尝试使用内置的DateTime类来帮助解决这个问题:

//...
$d_postpub = DateTime::createFromFormat('Y-m-d H:i:s', '2014-08-06 00:00:00');
$cutoff = new DateTime('-14 days'); $cutoff->setTime(0,0,0);
if($d_postpub<$cutoff){
//...