日期拾取器

上次更新时间:2024年3月22日

描述

Date Picker字段提供jQuery日期选择弹出窗口。

屏幕截图

​​

在ACF字段组中创建日期选取器字段。

在ACF字段组中创建日期选取器字段。

从内容编辑器的角度来看,Date Picker字段。

从内容编辑器的角度来看,Date Picker字段。

单击字段将打开日历,允许内容编辑器轻松选择正确的日期。

单击字段将打开日历,允许内容编辑器轻松选择正确的日期。

设置

  • 显示格式
    选择日期时显示的日期格式。

  • 返回格式
    加载值时返回的日期格式。请注意,该值始终保存为Ymd公司(YYYYMMDD)。

  • 本周开始于
    指定开始一周的日期。默认为星期一。

  • 要求的
    可以在“验证”选项卡上找到,这样可以防止字段接受空值。默认为关闭。

  • 说明书
    提交数据时显示说明。

模板使用

日期选择器字段使用返回格式设置。

显示值

此示例演示如何显示日期值。

<p>事件日期:<?php echo eschtml(get_field(“日期”));?></p>(第页)

修改值

此示例演示如何将字符串日期值转换为DateTime对象。

<?php(电话)//加载字段值。$date_string=获取字段('日期');//从值创建DateTime对象(格式必须匹配)。$date=DateTime::createFromFormat('Ymd',$date_string);//以自定义格式输出当前日期。?><p>活动开始日期:<?php echo$date->格式(“j M Y”);?></p>(第页)<?php(电话)//增加1天,再次输出。$date->modify(“+1天”);?><p>活动结束日期:<?php echo$date->格式(“j M Y”);?></p>(第页)

查询按顺序排序的帖子

此示例演示如何查询按自定义字段值排序的帖子。

<?php(电话)$posts=get_posts(数组(“post_type”=>“event”,“meta_key”=>“日期”,“orderby”=>“meta_value_num”,“订单”=>“ASC”,));if($posts){foreach($posts作为$post){//做点什么。}}

查询日期范围内的帖子

这个示例演示了如何查询帖子以查找今天发生的事件。

<?php(电话)//以Ymd格式查找今天的日期。$today=日期('Ymd');//使用meta_Query查询帖子以比较两个自定义字段:start_date和end_date。$posts=get_posts(数组(“post_type”=>“event”,“meta_query”=>数组(阵列(“key”=>“start_date”,“比较”=>“>=”,“value”=>今天$,),阵列(“key”=>“end_date”,“比较”=>“<=”,“value”=>今天$,)),));if($posts){foreach($posts作为$post){//做点什么。}}

笔记

数据库格式

所选值可以返回并以不同格式显示,但将以“Ymd”的形式保存到数据库中。如果手动更新此值必须使用Ymd公司格式。此格式在WordPress数据库表中使用,并允许直接进行数据库查询。

日期格式字符串

要自定义显示格式返回格式设置,请参阅DateTime::createFromFormat()文档.

JavaScript中的日期格式

一些JavaScript库可能会以不同的方式格式化PHP日期字符串。例如,PHP中的以下日期函数:

回声日期('Fj,Y@g:ia');

将输出如下内容:

2021年11月19日下午1:49

但是,如果将此值传递给类似jQuery UI DatePicker小工具,它将看到@作为一个特殊的角色格式化的使用Unix时间戳,这并不理想。

使用acf/settings/php_to_js_date_formats过滤器来修复此问题,因为它将转换@符号到'@'。这将确保它在JavaScript中被视为字符串,而不是要替换的字符。

添加过滤器('acf/settings/php_to_js_date_formats','support_at_symbol_in_date_format',10,1);函数支持_符号_日期_格式($格式){$格式['@']=“'@'”;返回$formats;}

翻译

如果您需要以非英语语言显示日期,WordPress包含一个名为日期_i18n()它将为您执行翻译。

<?php(电话)//加载字段值并转换为数字时间戳。$unixtimestamp=字符串时间(get_field('日期'));//以“l d F,Y”格式显示日期。echo date_i18n(“l d F,Y”,$unixtimestamp);

相关的