仅从多个日期中获取下一个日期
Get only the next date from multiple dates
我有几个日期,一些是过去的,一些是未来的,我只想显示这个列表未来的下一个日期。如果未来没有日期,我想回显一些文字。
我正在使用 ACF Date Picker inside a Repeater。首先,我想我必须获取当前日期,以便与其他日期进行比较:
date_default_timezone_set('Europe/Berlin');
$date = date('Ymd', time());
我选择了 Ymd
格式,因为转发器以完全相同的方式输出日期。现在我需要以某种方式检查中继器内的所有子字段。我想这是用某种方式完成的
$rows = get_field('repeater_field_name');
if($rows) {
foreach($rows as $row) {
// compare the dates, choose only the next coming date
// dates are stored in the_sub_field('repeater_date_field');
}
}
如何获取我的 get_field('repeater_field_name')
值的所有 the_sub_field('repeater_date_field')
?以及如何检测它的行(用于将其他 子字段 添加到同一行)?
你可以比较2个日期来解决这个问题。例如
$date_bef = strtotime("151218"); // December 18, 2015
$date_after = strtotime("151219"); // December 19, 2015
if($date_after - $date_bef == 1)
echo "This is a next day";
如果您不想比较,可以在现有时间基础上增加 1 天,例如
$next_day = date("Ymd",strtotime("151220") + 60*60*24);
您可以将所有日期存储在数组中。然后按升序排列。然后从列表中取第一个比今天大的日期。
请查看下面的代码。
date_default_timezone_set('Europe/Berlin');
$date = date('Ymd', time());
$dates = array();
$rows = get_field('repeater_field_name');
if($rows) {
foreach($rows as $row) {
$dates[] = $row->date_field;
// compare the dates, choose only the next coming date
// dates are stored in the_sub_field('repeater_date_field');
}
}
sort($dates);
$final_date = "";
foreach($dates as $date_row){
if($date_row > $date){
$final_date = $date_row;
return true;
}
}
echo $final_date;
我有几个日期,一些是过去的,一些是未来的,我只想显示这个列表未来的下一个日期。如果未来没有日期,我想回显一些文字。
我正在使用 ACF Date Picker inside a Repeater。首先,我想我必须获取当前日期,以便与其他日期进行比较:
date_default_timezone_set('Europe/Berlin');
$date = date('Ymd', time());
我选择了 Ymd
格式,因为转发器以完全相同的方式输出日期。现在我需要以某种方式检查中继器内的所有子字段。我想这是用某种方式完成的
$rows = get_field('repeater_field_name');
if($rows) {
foreach($rows as $row) {
// compare the dates, choose only the next coming date
// dates are stored in the_sub_field('repeater_date_field');
}
}
如何获取我的 get_field('repeater_field_name')
值的所有 the_sub_field('repeater_date_field')
?以及如何检测它的行(用于将其他 子字段 添加到同一行)?
你可以比较2个日期来解决这个问题。例如
$date_bef = strtotime("151218"); // December 18, 2015
$date_after = strtotime("151219"); // December 19, 2015
if($date_after - $date_bef == 1)
echo "This is a next day";
如果您不想比较,可以在现有时间基础上增加 1 天,例如
$next_day = date("Ymd",strtotime("151220") + 60*60*24);
您可以将所有日期存储在数组中。然后按升序排列。然后从列表中取第一个比今天大的日期。
请查看下面的代码。
date_default_timezone_set('Europe/Berlin');
$date = date('Ymd', time());
$dates = array();
$rows = get_field('repeater_field_name');
if($rows) {
foreach($rows as $row) {
$dates[] = $row->date_field;
// compare the dates, choose only the next coming date
// dates are stored in the_sub_field('repeater_date_field');
}
}
sort($dates);
$final_date = "";
foreach($dates as $date_row){
if($date_row > $date){
$final_date = $date_row;
return true;
}
}
echo $final_date;