Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2010, 02:17   #1
slips
Форумчанин
 
Аватар для slips
 
Регистрация: 28.10.2008
Сообщений: 350
По умолчанию Не получается вычесть даты

Доброй ночи, пытаюсь выполнить следующий код

Код:
$now_date=time();
$tmp=strtotime('+1 day',strtotime('2010-06-07'));
echo date("H:i:s d.m.Y",$now_date);
echo "<br/>";
echo date("H:i:s d.m.Y",$tmp);
echo "<br/>";
echo $tmp;
echo "<br/>";
echo $now_date;
echo "<br/>";
echo abs($tmp-$now_date);
В результате:
02:12:32 07.06.2010 <-это верно
00:00:00 08.06.2010 <-это верно

А вот тут что то не понятное почему между датами такая разница маленькая ?
1275940800 <-сомнительно
1275862352 <-сомнительно
а при вычитании вообще получается
78448 т.е. чуть больше часа
slips вне форума Ответить с цитированием
Старый 07.06.2010, 02:26   #2
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Число 78448 - это как раз разница в секундах между этими двумя событиями (почему у вас получилось чуть больше часа?). А вот с единицами измерения надо быть осторожнее и вправду, т.е. всегда смотреть на них - в первом случае это миллисекунды, если я не ошибаюсь.
motorway вне форума Ответить с цитированием
Старый 07.06.2010, 02:28   #3
slips
Форумчанин
 
Аватар для slips
 
Регистрация: 28.10.2008
Сообщений: 350
По умолчанию

Да я понимаю что это в миллисекундах я не понимаю почему так мало ведь даты то отличаются практически на целый день
Т.е. получается 2 часа ночи текущего дня
полночь следующего дня
22 часа как минимум должно быть же

Последний раз редактировалось slips; 07.06.2010 в 02:31. Причина: редактирование
slips вне форума Ответить с цитированием
Старый 07.06.2010, 02:33   #4
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Похоже, все-таки это в секундах, прошедших с 1 января 1970 года. Разница получается 78448 сек, что и равно 21 часу с чем-то (78448/3600)
motorway вне форума Ответить с цитированием
Старый 07.06.2010, 02:38   #5
slips
Форумчанин
 
Аватар для slips
 
Регистрация: 28.10.2008
Сообщений: 350
По умолчанию

Цитата:
Сообщение от motorway Посмотреть сообщение
Похоже, все-таки это в секундах, прошедших с 1 января 1970 года. Разница получается 78448 сек, что и равно 21 часу с чем-то (78448/3600)
Действительно в секундах - мой косяк, спасибо большое.
slips вне форума Ответить с цитированием
Старый 08.06.2010, 00:40   #6
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

Цитата:
Сообщение от motorway Посмотреть сообщение
Похоже, все-таки это в секундах, прошедших с 1 января 1970 года. Разница получается 78448 сек, что и равно 21 часу с чем-то (78448/3600)
Не равняется ли эта разница актуальному времени сервера? ))))))
Вернее количеству секунд оставшемуся до нового дня...

Гораздо лучше использовать mktime(0,0,0,6,7,2010), что даст тебе штамп на 0 часов, 0 минут, 0 секунд 7-го июня 2010 года. Внимание, 6 - это месяц, а 7 это день. Не перепутай.
http://www.php.net/manual/en/function.mktime.php
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоматизация заполнения даты и зависимость ячейки времени к ячейке даты. Каравай Microsoft Office Excel 14 11.03.2010 18:11
нужен макрос чтобы найти одинаковые инвентарные номера и вычесть их стоимость Любавушка Microsoft Office Excel 14 11.03.2010 04:36
Найти Сравнить Вычесть Записать pipetka Microsoft Office Excel 5 03.06.2009 10:56
Как вычесть один диапазон из другого? viter.alex Microsoft Office Excel 11 20.01.2009 16:30