ParseController.php
1.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
/**
* @package yii2-datecontrol
* @author Kartik Visweswaran <kartikv2@gmail.com>
* @copyright Copyright © Kartik Visweswaran, Krajee.com, 2014 - 2015
* @version 1.9.4
*/
namespace kartik\datecontrol\controllers;
use DateTimeZone;
use Yii;
use yii\helpers\Json;
use yii\helpers\ArrayHelper;
use kartik\datecontrol\Module;
use kartik\datecontrol\DateControl;
class ParseController extends \yii\web\Controller
{
/**
* Convert display date for saving to model
*
* @return string JSON encoded HTML output
*/
public function actionConvert()
{
$output = '';
Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
$post = Yii::$app->request->post();
if (isset($post['displayDate'])) {
$saveFormat = ArrayHelper::getValue($post, 'saveFormat');
$dispFormat = ArrayHelper::getValue($post, 'dispFormat');
$dispTimezone = ArrayHelper::getValue($post, 'dispTimezone');
$saveTimezone = ArrayHelper::getValue($post, 'saveTimezone');
$settings = ArrayHelper::getValue($post, 'settings', []);
$date = DateControl::getTimestamp($post['displayDate'], $dispFormat, $dispTimezone, $settings);
if (empty($date) || !$date) {
$value = '';
} elseif ($saveTimezone != null) {
$value = $date->setTimezone(new DateTimeZone($saveTimezone))->format($saveFormat);
} else {
$value = $date->format($saveFormat);
}
return ['status' => 'success', 'output' => $value];
} else {
return ['status' => 'error', 'output' => 'No display date found'];
}
}
}