Просмотр исходного кода

#4114 Date and DateTime fields aren't working correctly

Alex Trofimov 4 лет назад
Родитель
Сommit
afe6864d58
2 измененных файлов с 8 добавлено и 2 удалено
  1. 2 2
      inc/classes/BxDolForm.php
  2. 6 0
      inc/utils.inc.php

+ 2 - 2
inc/classes/BxDolForm.php

@@ -1915,7 +1915,7 @@ class BxDolFormCheckerHelper
 
     static public function displayDate ($i)
     {
-        return bx_process_output ($i, BX_DATA_DATE);
+        return bx_process_output ($i, BX_DATA_DATE_UTC);
     }
     static public function displayDateTs ($i)
     {
@@ -1927,7 +1927,7 @@ class BxDolFormCheckerHelper
     }    
     static public function displayDateTime ($i)
     {
-        return bx_process_output ($i, BX_DATA_DATETIME);
+        return bx_process_output ($i, BX_DATA_DATETIME_UTC);
     }
     static public function displayDateTimeTs ($i)
     {

+ 6 - 0
inc/utils.inc.php

@@ -21,6 +21,8 @@ define('BX_DATA_DATE_TS', 8); ///< date data type stored as unixtimestamp
 define('BX_DATA_DATETIME_TS', 9); ///< date/time data type stored as unixtimestamp
 define('BX_DATA_DATE_TS_UTC', 10); ///< date data type stored as unixtimestamp from UTC time
 define('BX_DATA_DATETIME_TS_UTC', 11); ///< date/time data type stored as unixtimestamp from UTC time
+define('BX_DATA_DATE_UTC', 13); ///< date data type stored as yyyy-mm-dd in UTC time
+define('BX_DATA_DATETIME_UTC', 14); ///< date/time data type stored as yyyy-mm-dd in UTC time
 
 define('BX_SLASHES_AUTO', 0);
 define('BX_SLASHES_ADD', 1);
@@ -214,6 +216,10 @@ function bx_process_output ($mixedData, $iDataType = BX_DATA_TEXT, $mixedParams
     case BX_DATA_DATE:
     case BX_DATA_DATETIME:
         return $mixedData;
+    case BX_DATA_DATE_UTC:
+        return $mixedData . "Z";
+    case BX_DATA_DATETIME_UTC:
+        return $mixedData . "Z";
     case BX_DATA_DATE_TS:
         return empty($mixedData) ? '' : date("Y-m-d", (int)$mixedData);
     case BX_DATA_DATE_TS_UTC: