From c88b2c0a6a20952742ef7801e872f8418668c5aa Mon Sep 17 00:00:00 2001 From: Sleeping Owl Date: Mon, 20 Oct 2014 20:32:32 +0400 Subject: [PATCH] Fixed bug with wrong date format --- src/SleepingOwl/Admin/Models/Form/FormItem/Date.php | 7 +++++++ src/SleepingOwl/Admin/Models/Form/FormItem/Timestamp.php | 8 ++++++++ src/SleepingOwl/DateFormatter/DateFormatter.php | 8 +++++++- src/SleepingOwl/Models/SleepingOwlModel.php | 3 ++- 4 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/SleepingOwl/Admin/Models/Form/FormItem/Date.php b/src/SleepingOwl/Admin/Models/Form/FormItem/Date.php index 513c8d3e..0611432e 100644 --- a/src/SleepingOwl/Admin/Models/Form/FormItem/Date.php +++ b/src/SleepingOwl/Admin/Models/Form/FormItem/Date.php @@ -8,4 +8,11 @@ public function render() 'data-date-picktime' => false ]); } + + public function getValidationRules() + { + $rules = parent::getValidationRules(); + $rules[] = 'date'; + return $rules; + } } \ No newline at end of file diff --git a/src/SleepingOwl/Admin/Models/Form/FormItem/Timestamp.php b/src/SleepingOwl/Admin/Models/Form/FormItem/Timestamp.php index 135662a6..ae5ce6f1 100644 --- a/src/SleepingOwl/Admin/Models/Form/FormItem/Timestamp.php +++ b/src/SleepingOwl/Admin/Models/Form/FormItem/Timestamp.php @@ -13,4 +13,12 @@ public function render() 'data-date-useseconds' => $this->showSeconds, ], DateFormatter::SHORT, $this->showSeconds ? DateFormatter::MEDIUM : DateFormatter::SHORT); } + + public function getValidationRules() + { + $rules = parent::getValidationRules(); + $rules[] = 'date'; + return $rules; + } + } \ No newline at end of file diff --git a/src/SleepingOwl/DateFormatter/DateFormatter.php b/src/SleepingOwl/DateFormatter/DateFormatter.php index 27f13237..e4cf910c 100644 --- a/src/SleepingOwl/DateFormatter/DateFormatter.php +++ b/src/SleepingOwl/DateFormatter/DateFormatter.php @@ -15,7 +15,13 @@ public static function format($date, $dateFormat = self::SHORT, $timeFormat = se { if ( ! $date instanceof Carbon) { - $date = new Carbon($date); + try + { + $date = new Carbon($date); + } catch (\Exception $e) + { + return null; + } } if ( ! function_exists('datefmt_create')) { diff --git a/src/SleepingOwl/Models/SleepingOwlModel.php b/src/SleepingOwl/Models/SleepingOwlModel.php index ce393c1f..319e7aad 100644 --- a/src/SleepingOwl/Models/SleepingOwlModel.php +++ b/src/SleepingOwl/Models/SleepingOwlModel.php @@ -62,8 +62,9 @@ public function fromDateTime($value) $result = parent::fromDateTime($value); } catch (InvalidArgumentException $e) { + $value = strtotime($value); $format = $this->getDateFormat(); - $value = new Carbon($value); + $value = Carbon::createFromTimestamp($value); return $value->format($format); } return $result;