提交表单之前,如何在输入字段中替换日期字符串?

问题描述

我正在将Formidable Forms Pro用于我的联系表。 只能在全局首选项中设置字段中显示的日期格式,而不能为每个字段设置日期格式。认值为mm/dd/yyyy。 单个日期字段具有“日历本地化”设置,该设置根据从下拉菜单中选择的区域设置显示日期选择器小部件。

问题是我正在使用不同语言的表单,因此我需要相应地显示日期格式。例如,mm/dd/yyyy代表英语形式,dd/mm/yyyy代表意大利形式。 作为一种限制所有字段只有一种日期格式的解决方法,我通过挂钩将自定义日期格式添加到设置中,如下所示:

add_filter('frm_datepicker_formats','add_custom_frm_format');
function add_custom_frm_format($formats) {
   $formats['j F Y'] = 'd MM yy'; //change PHP and Datepicker formats
   return $formats;
}

现在在Datepicker中选择日期后,我有

  • 2021年10月9日以英语进行本地化输入

  • 2021年10月10日,用于具有意大利语本地化的输入。

两个字段的格式都相同,但是至少这样可以避免来自不同国家/地区的用户感到困惑。

但是,“强大表单”插件使用PHP函数create_date_from_format将日期转换为DB格式(yyyy-mm-dd), 因此,“ 2021年10月9日”将生效,并转换为“ 2021-10-09”,而“ 9 ottobre 2021”将不生效,create_date_from_format返回“ 1970-01-01”。 PHP函数“create_date_from_format”仅接受标准的英文名称,例如一月,二月等。

在提交表单之前,是否可以用英文名称替换输入字段中的意大利月份名称“ Gennaio,Febbraio等”,但在该字段中保留字符串不变? 或者也许我应该采用另一种方法... FF支持自定义编码无济于事。 谁能把我的方向正确? 任何帮助都会很棒,谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)