Files
myep/src/BusProNet/TypeConversionTrait.php
T

54 lines
1.4 KiB
PHP

<?php
namespace App\BusProNet;
use Carbon\Carbon;
use Carbon\Exceptions\InvalidFormatException;
trait TypeConversionTrait
{
protected function stringToArray(string $string, string $separator = ','): array
{
return explode($separator, $string);
}
protected function stringToFloat(string $string): float
{
return (float) str_replace(['.', ','], ['', '.'], $string);
}
protected function floatToString(float $float): string
{
return number_format($float, 2, ',', '');
}
protected function stringToBool(string $string): bool
{
return 'True' === $string;
}
protected function boolToString(bool $bool): string
{
return $bool ? 'True' : 'False';
}
protected function stringToDate(string $string): ?\DateTimeImmutable
{
try {
$date = Carbon::createFromFormat('d.m.Y', $string)->startOfDay();
return $date->toDateTimeImmutable();
} catch (InvalidFormatException $e) {
return null;
}
}
protected function stringToDateTime(string $string): ?\DateTimeImmutable
{
try {
$dateTime = Carbon::createFromFormat('d.m.Y H:i', substr($string, 0, 16))->startOfDay();
return $dateTime->toDateTimeImmutable();
} catch (InvalidFormatException $e) {
return null;
}
}
}