diff --git a/module/common/model.php b/module/common/model.php
index 0174708a20..0b16444953 100644
--- a/module/common/model.php
+++ b/module/common/model.php
@@ -939,6 +939,38 @@ class commonModel extends model
echo "
';
}
+ /**
+ * Format the date to YYYY-mm-dd, format the datetime to YYYY-mm-dd HH:ii:ss.
+ *
+ * @param int $date
+ * @param string $type date|datetime|''
+ * @access public
+ * @return string
+ */
+ public function formatDate($date, $type = '')
+ {
+ $datePattern = '\w{4}(\/|-)\w{1,2}(\/|-)\w{1,2}';
+ $datetimePattern = $datePattern . ' \w{1,2}\:\w{1,2}\:\w{1,2}';
+
+ if(empty($type))
+ {
+ if(!preg_match("/$datePattern/", $date) and !preg_match("/$datetimePattern/", $date)) return $date;
+ if(preg_match("/$datePattern/", $date) === 1) $type = 'date';
+ if(preg_match("/$datetimePattern/", $date) === 1) $type = 'datetime';
+ }
+
+ if(helper::isZeroDate($date))
+ {
+ if($type == 'date') return '0000-00-00';
+ if($type == 'datetime') return '0000-00-00 00:00:00';
+ }
+
+ if($type == 'date') $format = 'Y-m-d';
+ if($type == 'datetime') $format = 'Y-m-d H:i:s';
+
+ return date($format, strtotime($date));
+ }
+
/**
* Get main nav items list
*
diff --git a/module/transfer/config.php b/module/transfer/config.php
index c53f3b1d84..a97d8f24f9 100644
--- a/module/transfer/config.php
+++ b/module/transfer/config.php
@@ -12,8 +12,8 @@ $config->transfer->fieldList['sort'] = '';
$config->transfer->fieldList['dataSource'] = array('module' => '', 'method' => '', 'params' => '', 'pairs' => '', 'lang' => '');
$config->transfer->initFunction = 'title,control,required,';
-$config->transfer->dateFeilds = 'estStarted,realStarted,deadline,openedDate,assignedDate,finishedDate,canceledDate,closedDate,lastEditedDate,';
-$config->transfer->datetimeFeilds = '';
+$config->transfer->dateFields = 'estStarted,realStarted,deadline,openedDate,assignedDate,finishedDate,canceledDate,closedDate,lastEditedDate,';
+$config->transfer->datetimeFields = '';
$config->transfer->listFields = '';
$config->transfer->sysLangFields = ',pri,status,type,mode,severity,os,browser,resolution,confirmed,source,reviewResult,stage,change,category';
$config->transfer->sysDataFields = 'execution,product,user';
diff --git a/module/transfer/model.php b/module/transfer/model.php
index 0721b4d5af..82cf31e94d 100644
--- a/module/transfer/model.php
+++ b/module/transfer/model.php
@@ -506,10 +506,32 @@ class transferModel extends model
{
$modelData = $this->getDatasByFile($tmpFile);
}
+
+ $modelData = $this->processDate($modelData);
if(isset($fields['id'])) unset($fields['id']);
return $modelData;
}
+ /**
+ * Process datas, convert date to YYYY-mm-dd, convert datetime to YYYY-mm-dd HH:ii:ss.
+ *
+ * @param array $datas
+ * @access public
+ * @return array
+ */
+ public function processDate($datas)
+ {
+ foreach($datas as $index => $data)
+ {
+ foreach($data as $field => $value)
+ {
+ if(strpos($this->modelConfig->dateFields, $field) !== false or strpos($this->modelConfig->datetimeFields, $field) !== false) $data->$field = $this->loadModel('common')->formatDate($value);
+ }
+ $datas[$index] = $data;
+ }
+ return $datas;
+ }
+
/**
* Get rows from excel.
*
@@ -940,7 +962,7 @@ class transferModel extends model
foreach($data as $field => $cellValue)
{
if(empty($cellValue)) continue;
- if(strpos($this->transferConfig->dateFeilds, $field) !== false and helper::isZeroDate($cellValue)) $datas[$key]->$field = '';
+ if(strpos($this->transferConfig->dateFields, $field) !== false and helper::isZeroDate($cellValue)) $datas[$key]->$field = '';
if(is_array($cellValue)) continue;
if(!empty($fieldList[$field]['from']) and in_array($fieldList[$field]['control'], array('select', 'multiple')))
@@ -1325,8 +1347,8 @@ class transferModel extends model
if(!isset($modelConfig->export)) $modelConfig->export = new stdClass();
if(!isset($modelConfig->import)) $modelConfig->export = new stdClass();
- $modelConfig->dateFeilds = isset($modelConfig->dateFeilds) ? $modelConfig->dateFeilds : $transferConfig->dateFeilds;
- $modelConfig->datetimeFeilds = isset($modelConfig->datetimeFeilds) ? $modelConfig->datetimeFeilds : $transferConfig->datetimeFeilds;
+ $modelConfig->dateFields = isset($modelConfig->dateFields) ? $modelConfig->dateFields : $transferConfig->dateFields;
+ $modelConfig->datetimeFields = isset($modelConfig->datetimeFields) ? $modelConfig->datetimeFields : $transferConfig->datetimeFields;
$modelConfig->sysLangFields = isset($modelConfig->sysLangFields) ? $modelConfig->sysLangFields : $transferConfig->sysLangFields;
$modelConfig->sysDataFields = isset($modelConfig->sysDataFields) ? $modelConfig->sysDataFields : $transferConfig->sysDataFields;
$modelConfig->listFields = isset($modelConfig->listFields) ? $modelConfig->listFields : $transferConfig->listFields;