Skip to content

Commit 62112a2

Browse files
committed
Debug java date format
1 parent ba1c71b commit 62112a2

File tree

4 files changed

+33
-11
lines changed

4 files changed

+33
-11
lines changed

Form/DataField/DateFieldType.php

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public static function getIcon(){
3737
*/
3838
public function getDataValue(DataField &$dataField, array $options){
3939

40-
$format = DateFieldType::convertJavaDateFormat($options['displayOptions']['displayFormat']);
40+
$format = DateFieldType::convertJavascriptDateFormat($options['displayOptions']['displayFormat']);
4141

4242
$dates = [];
4343
if(null !== $dataField->getRawData()){
@@ -238,6 +238,22 @@ public static function convertJavaDateFormat($format){
238238
return $dateFormat;
239239
}
240240

241+
242+
public static function convertJavascriptDateFormat($format){
243+
$dateFormat = $format;
244+
//see https://bootstrap-datepicker.readthedocs.io/en/latest/options.html#format
245+
$dateFormat = str_replace('yyyy', 'Y', $dateFormat);
246+
$dateFormat = str_replace('yy', 'y', $dateFormat);
247+
$dateFormat = str_replace('DD', 'l', $dateFormat);
248+
$dateFormat = str_replace('D', 'D', $dateFormat);
249+
$dateFormat = str_replace('dd', 'd', $dateFormat);
250+
// $dateFormat = str_replace('d', 't', $dateFormat);
251+
$dateFormat = str_replace('mm', 'm', $dateFormat);
252+
// $dateFormat = str_replace('m', 'n', $dateFormat);
253+
$dateFormat = str_replace('MM', 'F', $dateFormat);
254+
$dateFormat = str_replace('M', 'M', $dateFormat);
255+
return $dateFormat;
256+
}
241257

242258
/**
243259
*

Form/DataField/DateRangeFieldType.php

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public function getDataValue(DataField &$dataField, array $options){
4545
$dateTo = \DateTime::createFromFormat(\DateTime::ISO8601, $temp[$options['mappingOptions']['toDateMachineName']]);
4646

4747
if($dateFrom && $dateTo){
48-
$displayformat = DateRangeFieldType::convertJavascriptDateFormat($options['displayOptions']['locale']['format']);
48+
$displayformat = DateRangeFieldType::convertJavascriptDateRangeFormat($options['displayOptions']['locale']['format']);
4949
return $dateFrom->format($displayformat) . ' - ' . $dateTo->format($displayformat);
5050
}
5151
}
@@ -58,7 +58,7 @@ public function getDataValue(DataField &$dataField, array $options){
5858
*
5959
*/
6060
public function setDataValue($input, DataField &$dataField, array $options){
61-
$format = DateRangeFieldType::convertJavascriptDateFormat($options['displayOptions']['locale']['format']);
61+
$format = DateRangeFieldType::convertJavascriptDateRangeFormat($options['displayOptions']['locale']['format']);
6262

6363
$inputs = explode(' - ', $input);
6464

@@ -184,12 +184,13 @@ public function getDefaultOptions($name) {
184184

185185

186186

187-
public static function convertJavascriptDateFormat($format){
187+
public static function convertJavascriptDateRangeFormat($format){
188188
$dateFormat = $format;
189-
//TODO: naive approch....find a way to comvert java date format into php
189+
//see http://www.daterangepicker.com/#examples
190190
$dateFormat = str_replace('DD', 'd', $dateFormat);
191191
$dateFormat = str_replace('MM', 'm', $dateFormat);
192192
$dateFormat = str_replace('YYYY', 'Y', $dateFormat);
193+
$dateFormat = str_replace('YY', 'y', $dateFormat);
193194
$dateFormat = str_replace('hh', 'h', $dateFormat);
194195
$dateFormat = str_replace('HH', 'H', $dateFormat);
195196
$dateFormat = str_replace('mm', 'i', $dateFormat);

Resources/views/macros/data-field-type.html.twig

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -566,8 +566,7 @@
566566
<ul>
567567
{% for value in dataField.dateValues %}
568568
<li>
569-
{{ value|date(dataField.fieldType.displayOptions.displayFormat|convertJavaDateFormat) }}
570-
({{ value|date(dataField.fieldType.mappingOptions.format|convertJavaDateFormat) }})
569+
{{ value|date(dataField.fieldType.displayOptions.displayFormat|convertJavascriptDateFormat) }}
571570
</li>
572571
{% endfor %}
573572
</ul>
@@ -600,13 +599,13 @@
600599
{% if dateFrom %}
601600
<li>
602601
<b>From </b>
603-
{{ dateFrom|date(dataField.fieldType.displayOptions.locale.format|convertJavascriptDateFormat) }}
602+
{{ dateFrom|date(dataField.fieldType.displayOptions.locale.format|convertJavascriptDateRangeFormat) }}
604603
</li>
605604
{% endif %}
606605
{% if dateTo %}
607606
<li>
608607
<b>To </b>
609-
{{ dateTo|date(dataField.fieldType.displayOptions.locale.format|convertJavascriptDateFormat) }}
608+
{{ dateTo|date(dataField.fieldType.displayOptions.locale.format|convertJavascriptDateRangeFormat) }}
610609
</li>
611610
{% endif %}
612611
{% if dateFrom and dateTo %}

Twig/AppExtension.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ public function getFilters()
6767
new \Twig_SimpleFilter('md5', array($this, 'md5')),
6868
new \Twig_SimpleFilter('convertJavaDateFormat', array($this, 'convertJavaDateFormat')),
6969
new \Twig_SimpleFilter('convertJavascriptDateFormat', array($this, 'convertJavascriptDateFormat')),
70+
new \Twig_SimpleFilter('convertJavascriptDateRangeFormat', array($this, 'convertJavascriptDateRangeFormat')),
7071
new \Twig_SimpleFilter('getTimeFieldTimeFormat', array($this, 'getTimeFieldTimeFormat')),
7172
new \Twig_SimpleFilter('soapRequest', array($this, 'soapRequest')),
7273
new \Twig_SimpleFilter('luma', array($this, 'relativeluminance')),
@@ -413,12 +414,17 @@ public function dump($object) {
413414

414415
public function convertJavaDateFormat($format)
415416
{
416-
return DateFieldType::convertJavaDateFormat($format);
417+
return DateFieldType::convertJavaDateFormat($format);
417418
}
418419

419420
public function convertJavascriptDateFormat($format)
420421
{
421-
return DateRangeFieldType::convertJavascriptDateFormat($format);
422+
return DateFieldType::convertJavascriptDateFormat($format);
423+
}
424+
425+
public function convertJavascriptDateRangeFormat($format)
426+
{
427+
return DateRangeFieldType::convertJavascriptDateRangeFormat($format);
422428
}
423429

424430
public function getTimeFieldTimeFormat($options)

0 commit comments

Comments
 (0)