|
|
|
|
<?php ## Работа с временем по GMT.
// Вычисляет timestamp в Гринвиче, который соответствует
// локальному timestamp-форматуузначению.
function local2gm($localStamp=false) {
if ($localStamp === false) $localStamp = time();
// Получаем смещение часовой зоны в секундах.
$tzOffset = date("Z", $localStamp);
// Вычитаем разницу - получаем время по GMT.
return $localStamp - $tzOffset;
}
// Вычисляет локальный timestamp в Гринвиче, который
// соответствует timestamp-форматузначению по GMT. Можно указать
// смещение локальной зоны относительно GMT (в часах),
// тогда будет осуществлен перевод в эту зону (а не в текущую локальную).
// (а не в текущую локальную).
function gm2local($gmStamp=false, $tzOffset=false) {
if ($gmStamp === false) return time();
// Получаем смещение часовой зоны в секундах.
if ($tzOffset === false)
$tzOffset = date("Z", $gmStamp);
else
$tzOffset *= 60*60;
// Вычитаем разницу - получаем время по GMT.
return $gmStamp + $tzOffset;
}
?>
|
В книге приводится пример по датам, вот 2 функции.
Подскажите ,как парвильно вызвать чтобы получить результат?
Пробую первую вот так вызвать не получается получить результат.
| |
|
|
|
|
|
|
|
для: kilogram
(04.06.2012 в 14:02)
| | timestamp - в данном случае, это количество секунд прошедшее с 00:00:00 UTC 1 января, 1970 года. А вы что отдаете функции? | |
|
|
|
|
|
|
|
для: confirm
(04.06.2012 в 14:17)
| | Если так
возвращает кол-во секунд прошедших с 1970 года 1 января. А как сделать с 00:00:00 часов этого дня чтоб возвратило кол-во секунд? | |
|
|
|
|
|
|
|
для: kilogram
(04.06.2012 в 16:32)
| | Она и должна возвращать это. А вообще надобности в этой функции никакой нет, если только не для понятия, что такое временное смещение, так как существует для получения такой метки функция - gmmktime().
А чтобы получить метку, о которой вы говорите, получите первую, затем текущую - их разность будет вашим требуемым. | |
|
|
|
|
|
|
|
для: confirm
(04.06.2012 в 17:05)
| | Скажите, так верно?
echo mktime(0,0,0,6,3,2012)-mktime(0,0,0,0,0,0)
|
| |
|
|
|
|
|
|
|
для: kilogram
(04.06.2012 в 18:04)
| | Нет конечно. Во-первых указание аргументов во второй функции некорректное, во-вторых неверное следование операндов (не из того вычитание), ну а в третьих к GMT это отношения не имеет. | |
|
|
|
|
|
|
|
для: confirm
(04.06.2012 в 18:16)
| | А так правильно?
<?php
$dateStr = date('Y:m:d');
list($year, $month, $day) = explode(':', $dateStr);
echo(time() - mktime(0, 0, 0, $month, $day, $year));
?>
|
| |
|
|
|
|
|
|
|
для: kilogram
(04.06.2012 в 18:26)
| | А проверить себя трудно? | |
|
|
|
|
|
|
|
для: confirm
(04.06.2012 в 18:30)
| | Странно, одной строкой вот можно было:
echo time() - mktime(0, 0, 0);
|
| |
|
|
|
|
|
|
|
для: kilogram
(04.06.2012 в 20:49)
| | Ничего странного, если учесть то, что сказано в описании этой функции:
Аргументы могут быть пропущены в порядке справа налево; любой пропущенный аргумент получит текущее значение в соответствии с локальной датой и временем. | |
|
|
|