ACF DateTime/Date 选择器:获取大于当前日期的帖子
ACF DateTime/Date Picker : get posts greater than the current date
这里是这样的:
日期字段
$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 将根据字符串开头的字符对它们进行排序。
2019 年 12 月 3 日将被视为小于 2019 年 1 月 5 日,因为 D 在字母表中排在第一位。
你可以通过像这样格式化它们来解决这个问题(如果你想比较字符串而不是 dateTime 对象本身):'Ymd'
您现在正在比较数字,从年份开始,然后是带前导零的月份,然后是带前导零的日。
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>');
使用以下代码。它可以帮助你
if (strtotime($sdate) > strtotime($current_date)) { }
<script>
$(function () {
$('#id_name').datepicker({
format: 'dd/mm/yyyy',
autoclose: true,
startDate: new Date()
});
});
</script>
请按以下步骤操作:
请安装 ACF 以从后端生成动态字段。
- 创建一个字段并将其命名为开始日期,然后将其归档到您的 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>
希望能帮到你。
见附件截图:
这里是这样的:
日期字段
$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 将根据字符串开头的字符对它们进行排序。
2019 年 12 月 3 日将被视为小于 2019 年 1 月 5 日,因为 D 在字母表中排在第一位。
你可以通过像这样格式化它们来解决这个问题(如果你想比较字符串而不是 dateTime 对象本身):'Ymd'
您现在正在比较数字,从年份开始,然后是带前导零的月份,然后是带前导零的日。
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>');
使用以下代码。它可以帮助你
if (strtotime($sdate) > strtotime($current_date)) { }
<script>
$(function () {
$('#id_name').datepicker({
format: 'dd/mm/yyyy',
autoclose: true,
startDate: new Date()
});
});
</script>
请按以下步骤操作:
请安装 ACF 以从后端生成动态字段。
- 创建一个字段并将其命名为开始日期,然后将其归档到您的 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>
见附件截图: