Отображение даты/времени в часовом поясе пользователя - на стороне клиента

Как насчет пригодности для обслуживания и постоянства через жизненные циклы приложения? Большинство данных имеет более длинную продолжительность жизни, чем приложения, которые используют их. Отношения и целостность данных слишком важны для отъезда к надежде, что следующая команда разработчиков разбирается в ней в коде приложения. Если Вы не работали над дб с грязными данными, который не уважает естественные отношения, Вы будете. Важность целостности данных тогда станет очень ясной.

7
задан frankadelic 3 December 2009 в 01:56
поделиться

3 ответа

Вот как это можно сделать с помощью замечательного «прогрессивного улучшения»:

Выведите дату, в которой вы хотите, чтобы она отображалась, но обязательно укажите ее часовой пояс (здесь я использую 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>
2
ответ дан 7 December 2019 в 05:24
поделиться

Вы можете использовать Date.getTimeZoneOffset () , чтобы получить локальное смещение от GMT.

var date = new Date();
var offset = date.getTimezoneOffset();

Оттуда это SMOP. Используя объект Javascript Date , вы можете вызвать date.toDateString , чтобы получить удобочитаемую дату. Если вам это нужно на стороне сервера, пусть Javascript отправит смещение на ваш сервер с помощью GET или POST.

Форматирование даты - это отдельная история. Javascript не имеет большого количества встроенных функций. Вы могли бы взломать его самостоятельно, но в этом заключаются ошибки и безумие. Форматирование даты - это то, что должна обеспечивать любая хорошая библиотека Javascript. Например, JQuery имеет Datepicker.formatDate .

6
ответ дан 7 December 2019 в 05:24
поделиться

Мы используем библиотеку ExtJS , которая имеет функции, касающиеся даты и времени, которые могут вам очень помочь. Фактически, в моем Mozilla Firefox все даты и время отображаются в соответствии с часовым поясом браузера.

0
ответ дан 7 December 2019 в 05:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: