php - ACF DateTime / Date Picker:获取大于当前日期的帖子

在这种情况下:

日期栏

$start_date = get_sub_field('start_date');
$date = DateTime::createFromFormat('F j, Y', $start_date);
$sdate = $date->format('F j, Y');

Wordpress中的当前日期

$current_date = date('F j, Y');

我想做一个条件,它只显示大于当前日期的字段。

所以当我这样做

 if ($sdate > $current_date) { }

结果不符合预期,因为它还会显示上个月的值。 我在做什么错?有帮助吗?

您似乎正在与字符串进行比较,而不是dateTime对象。 因此,php将根据字符串开头的字符对它们进行排序。

由于D在字母顺序中排名第一,因此2019年12月3日将比2019年1月5日更短。

您可以通过以下格式来解决此问题(如果您要比较字符串而不是dateTime对象本身):

现在,您正在比较从年份开始的数字,然后是带有前导零的月份,然后是带有前导零的日期。

startTimes = 'Your date';
$args = array(
    'posts_per_page' => -1,
    'post_type'   => 'post_type',//Your post type
    'post_status' => 'publish',        
    'meta_query' => array(
    'relation' => 'AND',                           
        array(
            'key' => 'start_date',
            'value' => $startTimes, //Please confirm date format with your database
            'compare' => '>='
        )
    )
);

$pre_date_posts = get_posts($args);

_e('<pre>');
print_r($pre_date_posts); //Your Result
_e('</pre>');

使用以下代码。 它可以帮助你

如果(strtotime($ sdate)> strtotime($ current_date)){}

<script>
$(function () {
    $('#id_name').datepicker({
        format: 'dd/mm/yyyy',
        autoclose: true,
        startDate: new Date()
    });
});
</script>

请按照以下步骤操作:

请安装ACF以从后端生成动态字段。

  1. 创建一个字段并将其命名为“开始”日期,然后将其保存在您的PHP文件中,如下所示:

 <div class="container"> <?php $sDate = get_field('start_date'); $currendDate = date('F j, Y'); if($sDate > $currendDate){ echo 'Yes, It is greater.'; }else{ echo 'No, It is not greater.'; } ?> </div> 
希望它能对您有所帮助。

请参阅所附的屏幕截图:

在此处输入图片说明

转载请注明来自askonline.tech,本文标题:php - ACF DateTime / Date Picker:获取大于当前日期的帖子


 Top