|
|
|
| Есть код, который я не до конца понимаю
var currentDate = function () {
// get client's current date
var date = new Date();
// turn date to utc
var utc = date.getTime() + (date.getTimezoneOffset() * 60000);
// set new Date object
var new_date = new Date(utc + (3600000*settings.offset))
return new_date;
};
|
Это часть из плагина отсчёта обратного времени
Хочу заменить date.getTime() на <?=time();?>, но только не понимаю комбинаций
var utc = date.getTime() + (date.getTimezoneOffset() * 60000);
var new_date = new Date(utc + (3600000*settings.offset))
Причина: при отсчёте обратного времени плагин берёт текущее время из браузра, а оно у многих разное. | |
|
|
|
|
|
|
|
для: Den*s
(12.05.2015 в 00:41)
| | Хочу заменить date.getTime() на <?=time();?>
Не получится:
time() - возвращает локальное время сервера
new Date() - это объект, и заменить его строкой нельзя
date.getTimezoneOffset() - это смещение часового пояса клиента
Нужно работать либо с UTC временем, либо на основании смещения часовых поясов сервера и клиента, корректировать время на клиенте, если необходимо работать по времени сервера. Иначе как и есть в плагине - текущее время клиента корректируется его часовым смещением, поэтому и счетчик закончит работу у каждого клиента в разное время. | |
|
|
|
|
|
|
|
для: confirm
(12.05.2015 в 05:35)
| | Функция возвращает дату в своём формате, тоже судя по всему возвращает объект
Никак нельзя обхитрить строку
var new_date = new Date(utc + (3600000*settings.offset))
на
var new_date = <?=date("D M j G:i:s T Y", time());?>;
Может есть в php что то аналогичное.
Всё же можно как то сказать функции что бы время бралось с сервера а не из браузера ...
ведь utc + (3600000*settings.offset) это сё же цифра, её как то подменить ... | |
|
|
|
|
|
|
|
для: Den*s
(12.05.2015 в 17:04)
| | как ни будь вот так
<script>
// get client's current date
var date = new Date();
// turn date to utc
var utc = date.getTime() + (date.getTimezoneOffset() * 60000);
// set new Date object
var new_date = new Date(utc + (3600000));
var tmp = date.getTime()/1000;
tmp = tmp + "";
var tmp2 = tmp.split(".");
var tmp3 = "" + <?=time();?> + "" + tmp2[1];
var utc = parseInt(tmp3) + (date.getTimezoneOffset() * 60000);
var new_date = new Date(utc + (3600000*3));
alert(new_date);
</script>
|
| |
|
|
|