0

这里的情况:

日期字段

$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) { }

结果不如预期,因为它也显示了较早月份的值。我做错了什么?任何帮助?

4

5 回答 5

1

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

if (strtotime($sdate) > strtotime($current_date)) { }

于 2019-11-26T09:48:55.030 回答
0

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

2019 年 12 月 3 日将被认为比 2019 年 1 月 5 日更小,因为 D 在字母表中排在第一位。

你可以通过像这样格式化它们来解决这个问题(如果你想比较字符串而不是 dateTime 对象本身):'Ymd'

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

于 2019-11-26T09:44:18.213 回答
0
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>');
于 2019-11-26T09:45:11.840 回答
0
<script>
$(function () {
    $('#id_name').datepicker({
        format: 'dd/mm/yyyy',
        autoclose: true,
        startDate: new Date()
    });
});
</script>
于 2019-11-26T10:22:16.873 回答
0

请按照以下说明操作:

请安装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>
我希望它能帮到你。

见附件截图:

在此处输入图像描述

于 2019-11-26T12:17:53.667 回答