Wordpress/PHP获取两个日期之间的天数并创建数组
我有一个针对假期的Wordpress/PHP获取两个日期之间的天数并创建数组,php,arrays,wordpress,Php,Arrays,Wordpress,我有一个针对假期的自定义帖子类型,其中有一些Datepicker类型的自定义字段用于设置开始和结束日期。现在,我想获取这些日期之间的所有日期,并将它们添加到一个数组中 function get_vacation_dates(){ global $post; $args = array( 'post_type' => array('vacationperiods'), 'post_status' => array('publish'), 'order' =
自定义帖子类型
,其中有一些Datepicker类型的自定义字段用于设置开始和结束日期。现在,我想获取这些日期之间的所有日期,并将它们添加到一个数组中
function get_vacation_dates(){
global $post;
$args = array(
'post_type' => array('vacationperiods'),
'post_status' => array('publish'),
'order' => 'ASC'
);
$posts = get_posts($args);
$vac = [];
foreach ($posts as $post){
$vacationTitle = get_field('name', $post->ID);
$startDate = get_field('vacation_start', $post->ID);
$endDate = get_field('vacation_end', $post->ID);
// GET ALL DAYS/DATES
for ($i=$startDate; $i<=$endDate; $i+=86400) {
$days = date('Y-m-d', $i);
}
$duration = dateDiff($startDate, $endDate);
$vac[] = [
'name' => $vacationTitle,
'start' => $startDate,
'end' => $endDate,
'duration' => $duration,
'days' => $days
];
}
echo json_encode($days);
die();
}
函数获取假期日期(){
全球$员额;
$args=数组(
'post_type'=>数组('vacationperiods'),
“发布状态”=>array('publish'),
“订单”=>“ASC”
);
$posts=get_posts($args);
$vac=[];
foreach($posts作为$post){
$vacationTitle=get_字段('name',$post->ID);
$startDate=get\u字段('vacation\u start',$post->ID);
$endDate=get_字段('vacation_end',$post->ID);
//获取所有日期/日期
对于($i=$startDate;$i$vacationTitle),
“开始”=>$startDate,
'end'=>$endDate,
“持续时间”=>$duration,
“天”=>$days
];
}
echo json_编码(天);
模具();
}
这种方法不起作用,它给了我“天:'1970-01-01'”
——但正如前面提到的,我想把所有的天都列为一个数组,比如“天:['2018-09-13'、'2018-09-14'等]
如何实现这一点?该函数将英文文本DateTime解析为Unix时间戳(自1970年1月1日00:00:00 GMT以来的秒数)
大概是这样的:
$days = array();
// GET ALL DAYS/DATES
for ($i=strtotime($startDate); $i<=strtotime($endDate); $i+=86400) {
$days[] = date('Y-m-d', $i);
}
$days=array();
//获取所有日期/日期
对于($i=strotime($startDate);$i函数将英文文本DateTime解析为Unix时间戳(自1970年1月1日00:00:00 GMT以来的秒数)
大概是这样的:
$days = array();
// GET ALL DAYS/DATES
for ($i=strtotime($startDate); $i<=strtotime($endDate); $i+=86400) {
$days[] = date('Y-m-d', $i);
}
$days=array();
//获取所有日期/日期
对于($i=strottime($startDate);$I将日期转换为strottime。将日期转换为strottime。出于某种原因,这只会给我结果的endDate:-/你是指循环的最后日期吗?是的,确切地说,循环的最后日期实际上,$days
是一个变量。它用最后一个值覆盖。它应该定义一个数组或根据需要定义。将$days
定义为数组$days=array();
。请参阅更新后的答案。出于某种原因,这只会给我结果的结束日期:-/你是指循环的最后日期吗?是的,确切地说,循环的最后日期实际上,$days
是一个变量。它用最后一个值覆盖。它应该定义一个数组或根据需要定义。将$days
定义为数组$days=array();
。请参阅更新的答案。