ISOdate转phpdate用于ACF自定义字段查询
Convert ISOdate to phpdate for ACF custom field query
我构建了一个自定义海狸生成器 (wordpress) 模块。我正在通过 Ajax 获取帖子。我需要根据 ACF 自定义字段日期查询帖子。
我以 ISO8601 格式发布日期(例如 2013-12-01T00:00:00-05:00)。服务器端,我抓住了开始和结束。我将它们转换成 ACF 查询所需的格式 https://www.advancedcustomfields.com/resources/date-picker/
$start_date = date('Ymd', strtotime($_POST['start']));
$end_date = date('Ymd', strtotime($_POST['end']));
我运行查询,但什么也没得到。我将字符串回显出来,它们看起来是正确的。
如果我按照 ACF 文档中的示例设置日期 - 它有效(下面的代码)。所以我一定是错误地转换了 ISOdate $_POST['start']
。如何转换 ISODATE 以便我可以在查询中使用它?
function get_ajax_event_calendar_posts() {
$today = date('Ymd'); // this works...
$args = array(
'post_type' => array('event'),
'meta_query' => array(
array(
'key' => 'start_date',
'compare' => '<=',
'value' => $today,
),
array(
'key' => 'end_date',
'compare' => '>=',
'value' => $today,
)
),
'post_status' => array('publish'),
'posts_per_page' => 100,
'nopaging' => true,
'order' => 'DESC',
'orderby' => 'date'
);
// The Query
$ajaxposts = get_posts( $args );
//... etc
}
** 编辑 **
....日期的东西不是问题。我是问题所在...以正确的方式切换我的比较并且一切正常...
您没有说您实际需要什么格式来存储数据,但是您确实说 date('Ymd')
有效。无论哪种方式,使用 DateTime class:
<?php
$x = new DateTime('2013-12-01T00:00:00-05:00');
echo $x->format('d/m/Y H:i:s') . "\n"; // 01/12/2013 00:00:00
echo $x->format('dmY') . "\n"; // 01122013
我构建了一个自定义海狸生成器 (wordpress) 模块。我正在通过 Ajax 获取帖子。我需要根据 ACF 自定义字段日期查询帖子。
我以 ISO8601 格式发布日期(例如 2013-12-01T00:00:00-05:00)。服务器端,我抓住了开始和结束。我将它们转换成 ACF 查询所需的格式 https://www.advancedcustomfields.com/resources/date-picker/
$start_date = date('Ymd', strtotime($_POST['start']));
$end_date = date('Ymd', strtotime($_POST['end']));
我运行查询,但什么也没得到。我将字符串回显出来,它们看起来是正确的。
如果我按照 ACF 文档中的示例设置日期 - 它有效(下面的代码)。所以我一定是错误地转换了 ISOdate $_POST['start']
。如何转换 ISODATE 以便我可以在查询中使用它?
function get_ajax_event_calendar_posts() {
$today = date('Ymd'); // this works...
$args = array(
'post_type' => array('event'),
'meta_query' => array(
array(
'key' => 'start_date',
'compare' => '<=',
'value' => $today,
),
array(
'key' => 'end_date',
'compare' => '>=',
'value' => $today,
)
),
'post_status' => array('publish'),
'posts_per_page' => 100,
'nopaging' => true,
'order' => 'DESC',
'orderby' => 'date'
);
// The Query
$ajaxposts = get_posts( $args );
//... etc
}
** 编辑 ** ....日期的东西不是问题。我是问题所在...以正确的方式切换我的比较并且一切正常...
您没有说您实际需要什么格式来存储数据,但是您确实说 date('Ymd')
有效。无论哪种方式,使用 DateTime class:
<?php
$x = new DateTime('2013-12-01T00:00:00-05:00');
echo $x->format('d/m/Y H:i:s') . "\n"; // 01/12/2013 00:00:00
echo $x->format('dmY') . "\n"; // 01122013