I like how @wordpress does it - it stores data format as a translate-able string, and lets translators decide on a format for a specific locale.this defaults to ISO, but en_US translation can define
php
echo date( _e( 'Y-m-d' ) );
F j, Y, en_GB - j F, Y`, etc.It belongs to clients as well. If users are from different countries so, it has to be based on the format of user localization.
store everything in UTC, show it in the user's timezone and locale, and when a date has to be text use Y-m-d, it's the only format that sorts correctly as plain text 🙂