ACF pro - return 日期选择器
ACF pro - return day with date picker
我将 ACF pro 用于我的 wordpress。
我的日期选择器字段是一个转发器字段。
我只需要return那一天。
我的代码:
<?php
if( have_rows('dates') ):
while ( have_rows('dates') ) : the_row();
echo get_sub_field('date')."</br>";
endwhile;
else :
echo __( 'No dates available.','mywebsite' );
endif;
?>
get_sub_field() 函数通常会 return 一个字符串,具体取决于字段类型。此实例将 return 时间戳作为字符串,例如 '2021-06-28 10:28:00'
如果你只想 return 那一天你可以使用 PHP 的 strtotime 函数然后 return 你一个日期时间纪元整数 - 然后可以将其与 php 的 date 函数结合使用以打印日期。以下是可用于 date 函数的格式列表:PHP DateTime::format
示例:
<?php
if (have_rows('dates')):
while (have_rows('dates')) : the_row();
$dateTime = strtotime(get_sub_field('date'));
echo("Day : " . date('l', $dateTime) . "</br>");
endwhile;
else :
echo __('No dates available.', 'mywebsite');
endif;
?>
作为您的设置而不是您的代码中的另一种解决方案 - 更改实际字段的 'Return Format'。
示例为:
- 'd' - 一个月中的第几天,带前导零的 2 位数字
- 'j' - 不带前导零的月份中的第几天
- 'D' - 一天的文本表示,三个字母
- 'l' - 星期几的完整文本表示
那么您的原始代码将输出正确的格式:
<?php
if( have_rows('dates') ):
while ( have_rows('dates') ) :
the_row();
echo('Day: ' . get_sub_field('date') . "</br>"); //This will now output your 'Return Format' in ACF setup
endwhile;
else :
echo __( 'No dates available.','mywebsite' );
endif;
?>
您可以设置日期字段的 return 值。
EDIT
好的,所以如果你想显示两个日期,一个是完整的,一个只是一天,你首先需要 return 值是完整的日期,在这个例子中让天为 d/m/Y
$full_date = get_sub_field('date'); // the full date (format d/m/Y);
$day_from_date = DateTime::createFromFormat('d/m/Y', $full_date)->format('d'); // will get the day from the $full_date
这将为您提供所需的结果。
有关该方法的更多信息,请参见DateTime::createFromFormat
我将 ACF pro 用于我的 wordpress。 我的日期选择器字段是一个转发器字段。
我只需要return那一天。
我的代码:
<?php
if( have_rows('dates') ):
while ( have_rows('dates') ) : the_row();
echo get_sub_field('date')."</br>";
endwhile;
else :
echo __( 'No dates available.','mywebsite' );
endif;
?>
get_sub_field() 函数通常会 return 一个字符串,具体取决于字段类型。此实例将 return 时间戳作为字符串,例如 '2021-06-28 10:28:00'
如果你只想 return 那一天你可以使用 PHP 的 strtotime 函数然后 return 你一个日期时间纪元整数 - 然后可以将其与 php 的 date 函数结合使用以打印日期。以下是可用于 date 函数的格式列表:PHP DateTime::format
示例:
<?php
if (have_rows('dates')):
while (have_rows('dates')) : the_row();
$dateTime = strtotime(get_sub_field('date'));
echo("Day : " . date('l', $dateTime) . "</br>");
endwhile;
else :
echo __('No dates available.', 'mywebsite');
endif;
?>
作为您的设置而不是您的代码中的另一种解决方案 - 更改实际字段的 'Return Format'。
示例为:
- 'd' - 一个月中的第几天,带前导零的 2 位数字
- 'j' - 不带前导零的月份中的第几天
- 'D' - 一天的文本表示,三个字母
- 'l' - 星期几的完整文本表示
那么您的原始代码将输出正确的格式:
<?php
if( have_rows('dates') ):
while ( have_rows('dates') ) :
the_row();
echo('Day: ' . get_sub_field('date') . "</br>"); //This will now output your 'Return Format' in ACF setup
endwhile;
else :
echo __( 'No dates available.','mywebsite' );
endif;
?>
您可以设置日期字段的 return 值。
EDIT
好的,所以如果你想显示两个日期,一个是完整的,一个只是一天,你首先需要 return 值是完整的日期,在这个例子中让天为 d/m/Y
$full_date = get_sub_field('date'); // the full date (format d/m/Y);
$day_from_date = DateTime::createFromFormat('d/m/Y', $full_date)->format('d'); // will get the day from the $full_date
这将为您提供所需的结果。
有关该方法的更多信息,请参见DateTime::createFromFormat