I'm aware this subject has been covered numerous times. Fast answer is always "the later the better". But I'm unsure just how soon it'd be considered bad practice.
I'm using datetimes all over my app. If I leave it to the very last moment i.e. right before sending data to the views, I'll have to do boring repetitive code for every single datetime like that:
$dateOBJ = new DateTime($date);
$timezoneOBJ = new DateTimeZone($user_timezone);
$dateOBJ->setTimezone($timezoneOBJ)->format($my_format);
When I could do just once in the beginning of the script:
date_default_timezone_set($user_timezone);
And convert all fields right after (or during, if I was to use SQL functions) querying from UTC to user's. Therefore, a single model routine would deal with it for me and I'd never be worried about it again, even for form inputs.
Why is that bad practice?