我创建一些用户提交帖子,它有一个过期日期不显示, 如果用户在系统中有效,则即可覆盖帖子过期日期, 如果用户的日期大于过期日期和今天的日期,则该帖子应该有效,
在这里我将用户过期日期设置为未来,但我尝试了较旧的时间两个回复我
这个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;
}
答案 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){
//...