我使用Drupal控制台和相应的CRUD表单创建了一个自定义内容实体。
在这个实体中有一个这样定义的字段:
$fields['startdate'] = BaseFieldDefinition::create('datetime')
->setLabel(t('Membership Start Date'))
->setSetting('datetime_type', 'date')
->setDefaultValue(array(0 => array(
'default_date_type' => 'now',
'default_date' => 'now',
)))该字段在编辑模式下的显示方式完全不同,具体取决于浏览器(请参阅屏幕截图)。



最“烦人”的是显示的日期格式: mm/dd/yyyy ( Firefox ),yyyy( Safari )。唯一正确的是Chrome中的dd/mm/yyyy。
因为这个网站的用户是法国人,他们习惯于dd/mm/yyyy.
当然,我的网站的设置(语言、日期和时间等)都是法语。
你知道我怎么解决这个问题吗?不管浏览器是什么,我都有相同的行为吗?
发布于 2018-08-21 23:19:55
这方面的主要混乱之处在于,datetime、datetime范围和时间戳字段的小部件(负责字段输入的代码)使用HTML5 5日期/时间输入元素 (除了使用select列表版本时)。一个用于日期部分,另一个用于时间部分。
浏览器(而不是Drupal )呈现出HTML5日期/时间输入元素。因此,实际的用户界面将因浏览器和操作系统而异.另外,并非所有浏览器都支持这些输入。.
当浏览器遇到它无法识别的输入元素类型时,默认为纯文本条目。在这种情况下,Drupal为基于聚脂填充 UI组件的日期部分提供了一个jQuery。时间元素有一个问题,但目前它是在队列中消磨时间。
从你的截图看,Safari使用的是多边形填充,其余的使用浏览器版本的输入。
Safari的“yyyy”格式是退步的一个副作用。HTML5输入元素需要该格式的日期,因此小部件就是这样配置和呈现出来的。本机元素使用输入的本地化版本,并在幕后处理转换,以便Drupal获得正确的格式。
https://drupal.stackexchange.com/questions/267826
复制相似问题