Smoothing Data with Dates

DateTime is a type that wraps the count of milliseconds from the Dates.jl epoch, which is a long time ago. To get a more useful value for your purpose, it makes sense to use counts relative to a more recent date. Your example suggests the information steps by Day rather than some smaller time unit. Assuming that is true,

using Dates
const Days2000 = Dates.value(Date(2000,1,1))
reltime(x::DateTime) = 
  Float64(Dates.value(Date(x)) - Days2000)
julia> const Epoch2000 = DateTime(2000,1,1)
2000-01-01T00:00:00

julia> const Date2000   = Date(Epoch2000)
2000-01-01

julia> const Days2000  = Dates.value(Date2000)
730120

julia> countdays(x::DateTime) = Dates.value(Date(x))  - Days2000
countdays (generic function with 1 method)

julia> reltime(x::DateTime) = Float64(countdays(x))
reltime (generic function with 1 method)

julia>

julia> datetime = DateTime(2014,1,1)
2014-01-01T00:00:00

julia> reltime(datetime)
5114.0

For smoothing splines, scaling the values (dividing by the value for the earliest date) is worthwhile and easy to invert.