How to deal with datatype TIME in Illuminate/Carbon












0















I am working with a database that has the following columns (MariaDB):




  • EventDate (Datatype DATE)

  • EventStart (Datatype TIME)

  • EventEnd (Datatype TIME)


In the model I assign the first field (EventDate) with:



...
protected $dates = ['EventDate'];
...


which is then be formated later with:



$event->EventDate->formatLocalized('%a. %d.%m.%y')


Now, I want to set the format of the times with a simliar approach, but if I add the next field into the array:



...
protected $dates = ['EventDate', 'EventStart'];
...


And I receive the following Error Message:



Uncaught InvalidArgumentException: Unexpected data found.


Has anybody an idea how to solve that issue?
Thanks to you!










share|improve this question























  • Those aren't dates so you probably can't add them to that array. I have avoided using time columns for this exact reason when I know I'm going to need it to be formatted.

    – John Halsey
    Nov 15 '18 at 15:45











  • yes, i finally figured out that TIME comes as a String-Type in PHP and needs to be casted to DATETIME. I found a solution with an Accessor (see below)

    – Tim K.
    Nov 16 '18 at 11:23
















0















I am working with a database that has the following columns (MariaDB):




  • EventDate (Datatype DATE)

  • EventStart (Datatype TIME)

  • EventEnd (Datatype TIME)


In the model I assign the first field (EventDate) with:



...
protected $dates = ['EventDate'];
...


which is then be formated later with:



$event->EventDate->formatLocalized('%a. %d.%m.%y')


Now, I want to set the format of the times with a simliar approach, but if I add the next field into the array:



...
protected $dates = ['EventDate', 'EventStart'];
...


And I receive the following Error Message:



Uncaught InvalidArgumentException: Unexpected data found.


Has anybody an idea how to solve that issue?
Thanks to you!










share|improve this question























  • Those aren't dates so you probably can't add them to that array. I have avoided using time columns for this exact reason when I know I'm going to need it to be formatted.

    – John Halsey
    Nov 15 '18 at 15:45











  • yes, i finally figured out that TIME comes as a String-Type in PHP and needs to be casted to DATETIME. I found a solution with an Accessor (see below)

    – Tim K.
    Nov 16 '18 at 11:23














0












0








0


0






I am working with a database that has the following columns (MariaDB):




  • EventDate (Datatype DATE)

  • EventStart (Datatype TIME)

  • EventEnd (Datatype TIME)


In the model I assign the first field (EventDate) with:



...
protected $dates = ['EventDate'];
...


which is then be formated later with:



$event->EventDate->formatLocalized('%a. %d.%m.%y')


Now, I want to set the format of the times with a simliar approach, but if I add the next field into the array:



...
protected $dates = ['EventDate', 'EventStart'];
...


And I receive the following Error Message:



Uncaught InvalidArgumentException: Unexpected data found.


Has anybody an idea how to solve that issue?
Thanks to you!










share|improve this question














I am working with a database that has the following columns (MariaDB):




  • EventDate (Datatype DATE)

  • EventStart (Datatype TIME)

  • EventEnd (Datatype TIME)


In the model I assign the first field (EventDate) with:



...
protected $dates = ['EventDate'];
...


which is then be formated later with:



$event->EventDate->formatLocalized('%a. %d.%m.%y')


Now, I want to set the format of the times with a simliar approach, but if I add the next field into the array:



...
protected $dates = ['EventDate', 'EventStart'];
...


And I receive the following Error Message:



Uncaught InvalidArgumentException: Unexpected data found.


Has anybody an idea how to solve that issue?
Thanks to you!







datetime time eloquent






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 15 '18 at 4:43









Tim K.Tim K.

257




257













  • Those aren't dates so you probably can't add them to that array. I have avoided using time columns for this exact reason when I know I'm going to need it to be formatted.

    – John Halsey
    Nov 15 '18 at 15:45











  • yes, i finally figured out that TIME comes as a String-Type in PHP and needs to be casted to DATETIME. I found a solution with an Accessor (see below)

    – Tim K.
    Nov 16 '18 at 11:23



















  • Those aren't dates so you probably can't add them to that array. I have avoided using time columns for this exact reason when I know I'm going to need it to be formatted.

    – John Halsey
    Nov 15 '18 at 15:45











  • yes, i finally figured out that TIME comes as a String-Type in PHP and needs to be casted to DATETIME. I found a solution with an Accessor (see below)

    – Tim K.
    Nov 16 '18 at 11:23

















Those aren't dates so you probably can't add them to that array. I have avoided using time columns for this exact reason when I know I'm going to need it to be formatted.

– John Halsey
Nov 15 '18 at 15:45





Those aren't dates so you probably can't add them to that array. I have avoided using time columns for this exact reason when I know I'm going to need it to be formatted.

– John Halsey
Nov 15 '18 at 15:45













yes, i finally figured out that TIME comes as a String-Type in PHP and needs to be casted to DATETIME. I found a solution with an Accessor (see below)

– Tim K.
Nov 16 '18 at 11:23





yes, i finally figured out that TIME comes as a String-Type in PHP and needs to be casted to DATETIME. I found a solution with an Accessor (see below)

– Tim K.
Nov 16 '18 at 11:23












1 Answer
1






active

oldest

votes


















0














As a column with the datatype TIME comes in PHP as a String-Type, I achieved my problem with an Accessor:



public function getEventEndAttribute($value) {
return $this->attributes['EventEnd'] = (Carbon::createFromFormat('H:i:s', $value));
}


and then I was able to give my own format in the outputting script:



$event->EventEnd->format('H:i');





share|improve this answer

























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53312552%2fhow-to-deal-with-datatype-time-in-illuminate-carbon%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    As a column with the datatype TIME comes in PHP as a String-Type, I achieved my problem with an Accessor:



    public function getEventEndAttribute($value) {
    return $this->attributes['EventEnd'] = (Carbon::createFromFormat('H:i:s', $value));
    }


    and then I was able to give my own format in the outputting script:



    $event->EventEnd->format('H:i');





    share|improve this answer






























      0














      As a column with the datatype TIME comes in PHP as a String-Type, I achieved my problem with an Accessor:



      public function getEventEndAttribute($value) {
      return $this->attributes['EventEnd'] = (Carbon::createFromFormat('H:i:s', $value));
      }


      and then I was able to give my own format in the outputting script:



      $event->EventEnd->format('H:i');





      share|improve this answer




























        0












        0








        0







        As a column with the datatype TIME comes in PHP as a String-Type, I achieved my problem with an Accessor:



        public function getEventEndAttribute($value) {
        return $this->attributes['EventEnd'] = (Carbon::createFromFormat('H:i:s', $value));
        }


        and then I was able to give my own format in the outputting script:



        $event->EventEnd->format('H:i');





        share|improve this answer















        As a column with the datatype TIME comes in PHP as a String-Type, I achieved my problem with an Accessor:



        public function getEventEndAttribute($value) {
        return $this->attributes['EventEnd'] = (Carbon::createFromFormat('H:i:s', $value));
        }


        and then I was able to give my own format in the outputting script:



        $event->EventEnd->format('H:i');






        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Nov 23 '18 at 11:37

























        answered Nov 16 '18 at 11:31









        Tim K.Tim K.

        257




        257
































            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53312552%2fhow-to-deal-with-datatype-time-in-illuminate-carbon%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Florida Star v. B. J. F.

            Danny Elfman

            Lugert, Oklahoma