Modify

Opened 7 years ago

Closed 3 years ago

#1593 closed defect (fixed)

The drop downs for old billing date are in American mm/dd/yyyy format.

Reported by: anonymous Owned by: bobbysmith007
Priority: normal Component: TimingAndEstimationPlugin
Severity: normal Keywords: date format
Cc: stevemccusker@…, kirean@… Trac Release: 0.10

Description

The dates in the rest of Trac (0.10.4) in my Australian setup appear in dd/mm/yyyy format. The billing reports allow the user to enter dates in dd/mm/yyyy format but the results are wrong.

Attachments (0)

Change History (9)

comment:1 Changed 7 years ago by anonymous

  • Cc stevemccusker@… added; anonymous removed

comment:2 Changed 7 years ago by bobbysmith007

Really there are two problems here.

  1. Dates are stored in the database as a time stamp and as a string. The string is being stored and interpreted in American format.
  2. Javascript, when it reads in the date from the textbox,
    • calls new Date( {value from textbox/dropdown list} )
    • once we have a javascript date object, we run Math.round(date.getTime()/1000) - (60 * date.getTimezoneOffset()); to retrieve the unix epoch value of the time.

All of this is to say, that while I can add some configurable date format for storage ( 1), I dont know anything about how to fix (2) as that is something to do with the way the browsers javascript engine interprets dates.

I can still do(1) if necessary, but without (2) it will still break / give you invalid times, because it always uses javascript to build the links to the reports.

comment:3 follow-up: Changed 7 years ago by anonymous

If the dates are stored as a timestamp why can't you use the same functions as report.py uses to display the dates in the local format? Or is that what you meant by" add some configurable date format for storage"?

I don't understand the Javascript problem (among many things I don't understand). Can't you pass the date strings back from the Javascript into the python code that executes the reports and do a locale sensitive conversion to dates there?

comment:4 in reply to: ↑ 3 Changed 7 years ago by bobbysmith007

Replying to anonymous:

If the dates are stored as a timestamp why can't you use the same functions as report.py uses to display the dates in the local format?

I don't execute any python code against the /reports handler. So while I might be able to patch trac to do this, there is no way to do this with the plugin in its current state.

I don't understand the Javascript problem (among many things I don't understand). Can't you pass the date strings back from the Javascript into the python code that executes the reports and do a locale sensitive conversion to dates there?

The short answer is "not to the best of my knowledge". It might be possible to pass the date as a string and use the sql to correctly translate that into a different format. Not really sure about this though, but it might be something to play with. As you have access to the reports, you should be able to diddle them to see if you can figure out what sorts of things passed in the query, and what sorts of sql statements to execute to make that conversion happen correctly.

Unfortunately, I am highly skeptical that there is a cross database way to do this.

comment:5 Changed 7 years ago by anonymous

  • Cc kirean@… added

comment:6 follow-up: Changed 7 years ago by anonymous

Failing the ability to regionalise, can you implement an internationally universal and unambiguous format for input and lists?

eg: YYYY/MM/DD

comment:8 in reply to: ↑ 6 Changed 7 years ago by bobbysmith007

Replying to anonymous:

Failing the ability to regionalise, can you implement an internationally universal and unambiguous format for input and lists?

eg: YYYY/MM/DD

Sorry, I missed this comment and like this solution. I will attempt to make this happen next time I work on this. Sorry for the delay.

comment:9 Changed 3 years ago by bobbysmith007

  • Resolution set to fixed
  • Status changed from new to closed

(In [10625]) * Got date printing to be mostly iso8601 compliant (iternationalized)

  • Allow setting a bill date to a manual time, rather than only when clicked (mostly accepts iso8601 format eg: 2010-08-01 12:42:01)

fix #1593 and #7170

Add Comment

Modify Ticket

Action
as closed The owner will remain bobbysmith007.
The resolution will be deleted. Next status will be 'reopened'.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.