- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Magento 2 How to add only time-picker admin form field using UI form component
I want to show only Timepicker in Ui Component Form. and how to give time format to field.
suppose i want to give format 08:10 AM and also store value to data base as same format.
I am able to show time picker but but no idea about how to give format.
Any help would be appreciated! Thanks.
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Re: Magento 2 How to add only time-picker admin form field using UI form component
To add the dateTime picker you should use the next directive inside the xml file:
<field name="start_date"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">string</item> <item name="label" xsi:type="string" translate="true">Go Live Start Date</item> <item name="formElement" xsi:type="string">date</item> <item name="source" xsi:type="string">page</item> <item name="sortOrder" xsi:type="number">21</item> <item name="dataScope" xsi:type="string">start_date</item> <item name="validation" xsi:type="array"> <item name="required-entry" xsi:type="boolean">true</item> </item> <item name="options" xsi:type="array"> <item name="dateFormat" xsi:type="string">yyyy-MM-dd</item> <item name="timeFormat" xsi:type="string">HH:mm:ss</item> <item name="showsTime" xsi:type="boolean">true</item> </item> </item> </argument> </field>
You should look after showsTime option.
To debug the UI element - use this command inside the browser console:
require('uiRegistry').get('index = start_date')
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Re: Magento 2 How to add only time-picker admin form field using UI form component
@chandni_pandya thanks for your replay.
I try & review your post as i mentioned in my question i am able to show time field but i can not give format to time field.
suppose i want to give format 08:10 AM and also store value to data base as same format.
How can i achieve this?
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Re: Magento 2 How to add only time-picker admin form field using UI form component
Admin Form UI Component
<field name="schedule_date_time">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">string</item>
<item name="label" xsi:type="string" translate="true">Schedule Date/Time</item>
<item name="formElement" xsi:type="string">date</item>
<item name="source" xsi:type="string">Template</item>
<item name="dataScope" xsi:type="string">schedule_date_time</item>
<item name="options" xsi:type="array">
<item name="dateFormat" xsi:type="string">yyyy-MM-dd</item>
<item name="timeFormat" xsi:type="string">HH:mm</item>
<item name="showsTime" xsi:type="boolean">true</item>
</item>
</item>
</argument>
</field>
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Re: Magento 2 How to add only time-picker admin form field using UI form component
<field name="from_date"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">string</item> <item name="label" xsi:type="string" translate="true">From</item> <item name="formElement" xsi:type="string">date</item> <item name="source" xsi:type="string">sales_rule</item> <item name="dataScope" xsi:type="string">from_date</item> <item name="options" xsi:type="array"> <item name="dateFormat" xsi:type="string">yyyy-MM-dd</item> <item name="showsTime" xsi:type="boolean">true</item> </item> </item> </argument> <settings> <validation> <rule name="validate-optional-datetime" xsi:type="boolean">true</rule> </validation> </settings> </field>
This code works for me.
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Re: Magento 2 How to add only time-picker admin form field using UI form component
you can achieve this functionality below code.
UI component form in xml file like custom_form.xml:
<field name="your_field_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="class" xsi:type="string">{Vendorname}\{Modulename}\Ui\Component\Form\Element\Input</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">End Date</item> <item name="formElement" xsi:type="string">date</item> <item name="source" xsi:type="string">customer</item> <item name="sortOrder" xsi:type="number">89</item> <item name="dataScope" xsi:type="string">your_field_id</item> <item name="notice" xsi:type="string" translate="true">Enter the Account Removed Date of Customer(mm/dd/yyyy)</item> </item> </argument> </field>
Create file In `{Vendorname}\{Modulename}\Ui\Component\Form\Element\Input.php`
And add the logic in element Input.php file
<?php namespace {Vendorname}\{Modulename}\Ui\Component\Form\Element; class Input extends \Magento\Ui\Component\Form\Element\Input { /** * Prepare component configuration * * @return void */ public function prepare() { parent::prepare(); $config = $this->getData('config'); if(isset($config['dataScope']) && $config['dataScope']=='your_field_id'){ $config['default']= date('Y-m-d', strtotime('+3 years')); $this->setData('config', (array)$config); } } }
Please check and let know.