Joi - validate strings in mysql datetime format
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
add a comment |
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
I think you will find thatYYYY
is pretty much universally interpretted as "Long Year format", meaning2018
as opposed to just18
which would typically just bey
. This is generally because most parsing libraries will adhere to thestrftime
standards, and222018
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 withJoi.string().regex()
instead.
– Neil Lunn
Nov 13 '18 at 9:13
add a comment |
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
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
javascript node.js joi
asked Nov 13 '18 at 9:04
SalarSalar
2,82212442
2,82212442
I think you will find thatYYYY
is pretty much universally interpretted as "Long Year format", meaning2018
as opposed to just18
which would typically just bey
. This is generally because most parsing libraries will adhere to thestrftime
standards, and222018
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 withJoi.string().regex()
instead.
– Neil Lunn
Nov 13 '18 at 9:13
add a comment |
I think you will find thatYYYY
is pretty much universally interpretted as "Long Year format", meaning2018
as opposed to just18
which would typically just bey
. This is generally because most parsing libraries will adhere to thestrftime
standards, and222018
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 withJoi.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
add a comment |
1 Answer
1
active
oldest
votes
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');
add a comment |
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
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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');
add a comment |
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');
add a comment |
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');
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');
answered Nov 13 '18 at 10:05
Ali Momen SaniAli Momen Sani
575718
575718
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
I think you will find that
YYYY
is pretty much universally interpretted as "Long Year format", meaning2018
as opposed to just18
which would typically just bey
. This is generally because most parsing libraries will adhere to thestrftime
standards, and222018
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 withJoi.string().regex()
instead.– Neil Lunn
Nov 13 '18 at 9:13