SilverStripe 3.1.x:如何在DatetimeField中显示日历选择器?

D-L*_*D-L 3 time calendar date picker silverstripe

如果我将DatetimeField更改为DateField,它可以工作 - 日历选择器将显示,我无法让它显示在DatetimeField中.有这么简单快捷的方法吗?

<?php
class Page extends SiteTree {

    private static $db = array(
        "StartDatetime" => "SS_Datetime"
    );

    public function getCMSFields() {
        $fields = parent::getCMSFields();

        //Add a Start Date/time field
        $datetimeField = new DatetimeField("StartDatetime", "Enter a Start Date for the Promotion");
        //Add a calendar picker (only works with DateField but not DatetimeField)
        $datetimeField->setConfig('dateformat', 'dd/MM/yyyy')->setConfig('showcalendar', true);
        $datetimeField->setDescription(sprintf(
            _t('FormField.Example', 'e.g. %s', 'Example format'),
            Convert::raw2xml(Zend_Date::now()->toString($datetimeField->getConfig('dateformat')))
        ));
        $fields->addFieldToTab("Root.Main", $datetimeField);

        return $fields;
    }
Run Code Online (Sandbox Code Playgroud)

小智 8

您需要从DatetimeField中提取DateField才能执行此操作.

例如.

$datetimeField->getDateField()->setConfig('showcalendar', true);
Run Code Online (Sandbox Code Playgroud)

使用TimeField可以完成同样的操作 getTimeField()