On Fri, 22 Feb 2013 00:08:01 +0100, Ferrous Cranus <nikos.gr...@gmail.com> wrote:

Τη Παρασκευή, 22 Φεβρουαρίου 2013 12:03:59 π.μ. UTC+2, ο χρήστης Michael Ross έγραψε:
On Thu, 21 Feb 2013 22:22:15 +0100, Ferrous Cranus <nikos.gr...@gmail.com>

wrote:



> Τη Πέμπτη, 21 Φεβρουαρίου 2013 10:14:13 μ.μ. UTC+2, ο χρήστης MRAB

> έγραψε:

>> On 2013-02-21 19:38, Ferrous Cranus wrote:

>>

>> > import datetime from datetime

>>

>>

>>

>> Should be:

>>

>>

>>

>> from datetime import datetime

>>

>>

>>

>> >

>>

>> > try:

>>

>> >      datetime.strptime( date, '%d %m %Y' )

>>

>>

>>

>> That parses the date and discards the result.

>>

>>

>>

>> >      date = date.strptime( '%Y-%m-%d' )

>>

>>

>>

>> 'date' is a string, it doesn't have a 'strptime' method.

>>

>>

>>

>> When you parsed the date you got a datetime object; _that_ has the

>>

>> 'strptime' method.

>

> I don't need to store the date i just want to make sure is entered

> correctly.

> I would like to have the user type the date like

>

> 21 02 2013

> and then convert it to 2013-02-21 because thats how mysql wants the date

> in order to store it.

> Please show me how to write this.

>

> Also, can you show me how to write it that if so even if the user

> entered date is wrong it doesn't just crash the cgi-script?i know i can

> use tr: expect: but i want to avoid it, somehow i need to check the date

> in the same if statemnt like i do with the other user defined varibles

> for validity.

>



You *have* to try/expect in order to not have the script crash.

Think user typo: 21 02 2ß13



Personally, I'd use a javascript on the html so users can't POST invalid

dates.

I use mootools for that. It accepts 21/02/2013, 21-02-2013 and 21.02.13 as

input,

and you end up with 21.02.2013 posted to your cgi in any case.

i just want to check for date validity from within ha same if statemnt like i check the other variables and i tried a regualr expression just now:

if( task and ( price and price.isdigit() and price.__len__() <= 3 ) and ( date and re.search( r'(\d+) (\d+) (\d+)', date ) ) ):

Do i ahve somehting wrong in it?

will the if become true if the user enters 21 02 2013 ?


I pretend not to know, try it out?

And try with invalid inputs, too:
211 02 2013
21 99 2013
31 02 2013
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to