for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
/**
* Created for IG Monitoring.
* User: jakim <[email protected]>
* Date: 2018-09-27
*/
namespace app\components\visualizations;
use app\components\ArrayHelper;
use Carbon\Carbon;
use Yii;
use yii\helpers\StringHelper;
class DateHelper
{
public static $dateFormat = 'd.m.Y';
public static $rangeSeparator = ' - ';
public static function getDefaultRange()
return sprintf('%s%s%s',
Carbon::now()->startOfMonth()->format(static::$dateFormat),
static::$rangeSeparator,
Carbon::now()->endOfMonth()->format(static::$dateFormat)
);
}
public static function getRangeFromUrl(string $getParamName = 'date_range')
$dateRangeDefaultValue = static::getDefaultRange();
return Yii::$app->request->get($getParamName, $dateRangeDefaultValue);
* @param string $dateRange
* @return array|[Carbon, Carbon] [start, end]
array|[Carbon, Carbon]
2
public static function normalizeRange(string $dateRange)
$dateRange = StringHelper::explode($dateRange, static::$rangeSeparator, true);
$start = ArrayHelper::getValue($dateRange, '0');
if ($start) {
$start = Carbon::createFromFormat(static::$dateFormat, $start)->startOfDay();
$end = ArrayHelper::getValue($dateRange, '1');
if ($end) {
$end = Carbon::createFromFormat(static::$dateFormat, $end)->endOfDay();
return [$start, $end];