ParseDate in local format

when a user choose a date from my datepicker calendar, an european
local startdate is displayed in the text field : 30/7/2006, fine !

As I must add 10 days to this starting date to ‘ajax-modify’ the
ending date,
I wrote the following method :

def startdateChanged
v = ParseDate::parsedate(@params[“startdate”]) #=>
[2006, 30, 7, nil, nil, nil, nil, nil]
t = Time.local(v.compact*",") #=> Sun Jan 01
00:00:00 CET 2006 which is wrong
@enddate = (t+(84600*10)).strftime("%d/%m/%Y")
render(:partial => “enddate”)
end

the Time.local() is expected [2006, 7, 30, nil, nil, nil, nil, nil]

is there any way to parse the date according to a ‘locale’ (fr_FR in
this case)

thanks

joss

Josselin wrote:

t = Time.local(v.compact*",")                 #=>   Sun Jan 01 

thanks

joss

Here is how I do it to parse mm.dd.yyyy. dates:

require (‘parsedate’)
module ParseDate
class << self
alias_method :old_parsedate, :parsedate unless
method_defined?(:old_parsedate)
end

def self.parsedate(str)
match = /(\d{1,2}).(\d{1,2}).(\d{2,4}).?/.match(str)
return ParseDate.old_parsedate(str) unless match
[match[3].to_i, match[2].to_i, match[1].to_i, nil, nil, nil, nil,
nil]
end
end

Bojan

On 2006-07-25 18:26:52 +0200, Bojan M. [email protected] said:

 match = /(\d{1,2})\.(\d{1,2})\.(\d{2,4})\.?/.match(str)
 return ParseDate.old_parsedate(str) unless match
 [match[3].to_i, match[2].to_i, match[1].to_i, nil, nil, nil, nil, nil]

end
end

thanks a lot…
as always …one vision of the world = one vision of the time = one
vision of the date

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs