Как насчет пригодности для обслуживания и постоянства через жизненные циклы приложения? Большинство данных имеет более длинную продолжительность жизни, чем приложения, которые используют их. Отношения и целостность данных слишком важны для отъезда к надежде, что следующая команда разработчиков разбирается в ней в коде приложения. Если Вы не работали над дб с грязными данными, который не уважает естественные отношения, Вы будете. Важность целостности данных тогда станет очень ясной.
Вот как это можно сделать с помощью замечательного «прогрессивного улучшения»:
Выведите дату, в которой вы хотите, чтобы она отображалась, но обязательно укажите ее часовой пояс (здесь я использую GMT , но вы можете использовать UTC и т. д.). Затем замените его местным временем при загрузке (автоматически обрабатывается JavaScript, если указан исходный часовой пояс).
<div id="timestamp">December 12, 2009 6:00 pm GMT</div>
<script type="text/javascript">
var timestamp = document.getElementById('timestamp'),
t = new Date(timestamp.innerHTML),
hours = t.getHours(),
min = t.getMinutes() + '',
pm = false,
months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
if(hours > 11){
hours = hours - 12;
pm = true;
}
if(hours == 0) hours = 12;
if(min.length == 1) min = '0' + min;
timestamp.innerHTML = months[t.getMonth()] + ' ' + t.getDate() + ', ' + t.getFullYear() + ' ' + hours + ':' + min + ' ' + (pm ? 'pm' : 'am');
</script>
Вы можете использовать Date.getTimeZoneOffset () , чтобы получить локальное смещение от GMT.
var date = new Date();
var offset = date.getTimezoneOffset();
Оттуда это SMOP. Используя объект Javascript Date , вы можете вызвать date.toDateString
, чтобы получить удобочитаемую дату. Если вам это нужно на стороне сервера, пусть Javascript отправит смещение на ваш сервер с помощью GET или POST.
Форматирование даты - это отдельная история. Javascript не имеет большого количества встроенных функций. Вы могли бы взломать его самостоятельно, но в этом заключаются ошибки и безумие. Форматирование даты - это то, что должна обеспечивать любая хорошая библиотека Javascript. Например, JQuery имеет Datepicker.formatDate .
Мы используем библиотеку ExtJS , которая имеет функции, касающиеся даты и времени, которые могут вам очень помочь. Фактически, в моем Mozilla Firefox все даты и время отображаются в соответствии с часовым поясом браузера.