Page MenuHomePhabricator

Custom field "date" display is inconsistent
Closed, DuplicatePublic

Description

Custom field definition:

Screenshot_2014-03-21_18.04.25.png (536×361 px, 41 KB)

Displays as:

{F134285}

Event Timeline

shadowhand raised the priority of this task from to Needs Triage.
shadowhand updated the task description. (Show Details)
shadowhand added a project: Phabricator.
shadowhand added a project: Maniphest.
shadowhand added a subscriber: shadowhand.

And when I get an email:

shadowhand set Due Date to Oct 10 2014, Oct 10th, 2014 0:00 am.

Maybe this is caused by my custom time-of-day settings? For the record, I have it set to M jS, Y G:i a.

Yes, this is because of your custom setting. You should choose a "Time-of-Day" setting which corresponds to your preferred format for times of day only (not dates), like the examples on the settings page. If you include date information in this setting, we'll render date information twice when rendering both a date and a time.

Generally, we render days and times in various ways. Two common ways are "date" and "date + time". In some cases, we attempt to be smart or context sensitive about this (e.g., showing different information for nearby dates versus distant dates).

There is currently no way to customize date formats, the context sensitive display behaviors, the date selector control, or the parsing of ambiguous textual dates like "1/2". While having these settings would be nice, the defaults should never be ambiguous (that is, we do not use "1/11/11" style dates, which can be interpreted as either Jan 11 or Nov 1 depending on your locale). Basically, we've tried to select relatively local-independent defaults to avoid needing to add a large number of specialized settings and give the application reasonable behavior for logged-out users and users who haven't configured settings yet.

We will probably add these settings eventually, but allowing full customization of all this stuff is complex (for example, we have little control over parsing right now, and essentially just hand what we're passed to strtotime()).

I'm going to merge this into T4660, which is similar.