server time in javascript
Задача была следующая. В приложении, в самых разных его элементах, возникает необходимость получить текущее время сервера. Инцедент с "юзер перевел системные часы и не обновил приложение" считать маловероятным и незначительным, сие означает что достаточно получить время один раз.
Решение
Добавляем в конструктор метод, починяющийпримус созданный экземпляр даты и возвращающий её
ЗЫ Если негодяйский юзер балуется часами и это критично, то можно корректировать свойство server_time_delay с необходимой частотой.
Решение
Добавляем в конструктор метод, починяющий
Date.prototype.getFixed = function() {
if(typeof(this.server_time_delay)=='number')
this.setMilliseconds(this.getMilliseconds() + this.server_time_delay);
return this;
};Единожды получаем разницу (сервер-клиент) и сохраняем в конструкторе Date
// Smarty example
Date.prototype.server_time_delay = (new Date("{$smarty.now|date_format:'%m/%d/%Y %T'}") - new Date());
Готово к использованиюvar fixed_date = new Date().getFixed(); alert(fixed_date);
ЗЫ Если негодяйский юзер балуется часами и это критично, то можно корректировать свойство server_time_delay с необходимой частотой.
