Joi - validate strings in mysql datetime format










2















I want to validate input strings which are in mysql datetime format like this:
YYYY-MM-DD HH:mm:ss
2018-10-12 19:32:55



How can I do that?

I have used this code but it allows strings like 222018-10-12 19:32:55 which are invalid.



created_at: Joi.date().required()









share|improve this question






















  • I think you will find that YYYY is pretty much universally interpretted as "Long Year format", meaning 2018 as opposed to just 18 which would typically just be y. This is generally because most parsing libraries will adhere to the strftime standards, and 222018 though "far into the future" is actually still valid as a "long year". If you expect something different, you probably want a rule based on a regular expression for the string. So something with Joi.string().regex() instead.

    – Neil Lunn
    Nov 13 '18 at 9:13
















2















I want to validate input strings which are in mysql datetime format like this:
YYYY-MM-DD HH:mm:ss
2018-10-12 19:32:55



How can I do that?

I have used this code but it allows strings like 222018-10-12 19:32:55 which are invalid.



created_at: Joi.date().required()









share|improve this question






















  • I think you will find that YYYY is pretty much universally interpretted as "Long Year format", meaning 2018 as opposed to just 18 which would typically just be y. This is generally because most parsing libraries will adhere to the strftime standards, and 222018 though "far into the future" is actually still valid as a "long year". If you expect something different, you probably want a rule based on a regular expression for the string. So something with Joi.string().regex() instead.

    – Neil Lunn
    Nov 13 '18 at 9:13














2












2








2








I want to validate input strings which are in mysql datetime format like this:
YYYY-MM-DD HH:mm:ss
2018-10-12 19:32:55



How can I do that?

I have used this code but it allows strings like 222018-10-12 19:32:55 which are invalid.



created_at: Joi.date().required()









share|improve this question














I want to validate input strings which are in mysql datetime format like this:
YYYY-MM-DD HH:mm:ss
2018-10-12 19:32:55



How can I do that?

I have used this code but it allows strings like 222018-10-12 19:32:55 which are invalid.



created_at: Joi.date().required()






javascript node.js joi






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 13 '18 at 9:04









SalarSalar

2,82212442




2,82212442












  • I think you will find that YYYY is pretty much universally interpretted as "Long Year format", meaning 2018 as opposed to just 18 which would typically just be y. This is generally because most parsing libraries will adhere to the strftime standards, and 222018 though "far into the future" is actually still valid as a "long year". If you expect something different, you probably want a rule based on a regular expression for the string. So something with Joi.string().regex() instead.

    – Neil Lunn
    Nov 13 '18 at 9:13


















  • I think you will find that YYYY is pretty much universally interpretted as "Long Year format", meaning 2018 as opposed to just 18 which would typically just be y. This is generally because most parsing libraries will adhere to the strftime standards, and 222018 though "far into the future" is actually still valid as a "long year". If you expect something different, you probably want a rule based on a regular expression for the string. So something with Joi.string().regex() instead.

    – Neil Lunn
    Nov 13 '18 at 9:13

















I think you will find that YYYY is pretty much universally interpretted as "Long Year format", meaning 2018 as opposed to just 18 which would typically just be y. This is generally because most parsing libraries will adhere to the strftime standards, and 222018 though "far into the future" is actually still valid as a "long year". If you expect something different, you probably want a rule based on a regular expression for the string. So something with Joi.string().regex() instead.

– Neil Lunn
Nov 13 '18 at 9:13






I think you will find that YYYY is pretty much universally interpretted as "Long Year format", meaning 2018 as opposed to just 18 which would typically just be y. This is generally because most parsing libraries will adhere to the strftime standards, and 222018 though "far into the future" is actually still valid as a "long year". If you expect something different, you probably want a rule based on a regular expression for the string. So something with Joi.string().regex() instead.

– Neil Lunn
Nov 13 '18 at 9:13













1 Answer
1






active

oldest

votes


















2














As of version v10 joi.format() was removed and instead you can use joi-date-extensions
which provides validation helpers like this:



Joi.date().format('YYYY-MM-DD');






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%2f53277305%2fjoi-validate-strings-in-mysql-datetime-format%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









    2














    As of version v10 joi.format() was removed and instead you can use joi-date-extensions
    which provides validation helpers like this:



    Joi.date().format('YYYY-MM-DD');






    share|improve this answer



























      2














      As of version v10 joi.format() was removed and instead you can use joi-date-extensions
      which provides validation helpers like this:



      Joi.date().format('YYYY-MM-DD');






      share|improve this answer

























        2












        2








        2







        As of version v10 joi.format() was removed and instead you can use joi-date-extensions
        which provides validation helpers like this:



        Joi.date().format('YYYY-MM-DD');






        share|improve this answer













        As of version v10 joi.format() was removed and instead you can use joi-date-extensions
        which provides validation helpers like this:



        Joi.date().format('YYYY-MM-DD');







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 13 '18 at 10:05









        Ali Momen SaniAli Momen Sani

        575718




        575718



























            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%2f53277305%2fjoi-validate-strings-in-mysql-datetime-format%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

            Use pre created SQLite database for Android project in kotlin

            Darth Vader #20

            Ondo