我有一个自定义字段expirydate,它是由acf作为日期选择器...使用下面的代码我试图删除已经过期的帖子...由于某种原因代码不起作用。
$arg= get_posts(array('post_type' => tokens, 'numberposts' => -1));
foreach ( $arg as $post ) : setup_postdata($post);
if (!empty($post))
{
$expiry=get_field('expiry',$post->ID);
$today=date("d/m/Y");
if ($today>$expiry) {
echo $expiry."expired <br>";
wp_delete_post($postid);
}
else {
echo "not expired"."<br>";
}
}
endforeach;
echo "process completed";
?>
条件$today>$expiry
始终返回false
答案 0 :(得分:2)
您正在比较字符串,而不是日期。因此31/1/2014
大于01/12/2014
,因为3&gt; 1 比较字符串时。
要正确比较日期,请使用可比较的字符串格式或使用可比较的DateTime()
个对象。
$expiry = DateTime::createFromFormat('d/m/y', get_field('expiry',$post->ID));
$today = new DateTime();
if ($today > $expiry) {
我建议不要使用strtotime()
进行日期比较,因为不会考虑夏令时。