Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Программирование > PHP

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 14.04.2004, 09:08
(- Goo -) [sublimit] вне форума Посмотреть профиль Отправить личное сообщение для (- Goo -) [sublimit] Найти все сообщения от (- Goo -) [sublimit]
  № 1  
(- Goo -) [sublimit]

Регистрация: Apr 2004
Сообщений: 82
Smile Php по утрам

Встал сегодня рано утром, и сел за написание скрипта вычесляющего разницу в днях между двумя датами: Сегодняшним днём, и 19 Мая, 2005ого года.

<? //
PHP код:

$premiere
=mktime(0,0,0,19,5,2005);
$today=date("0,0,0,j,n,Y");
$today=mktime($today);

$difference=$premiere-$today;
$difference=$difference/60/60/24;
$difference=(int)$difference;

print(
$difference); 
// ?>

Когда я его затестил, скрипт вернул мне 810 дней, тоесть в два раза больше чем надо. Тогда я понял что ошибка вот в этой строке

$difference=$premiere-$today;
$difference=$difference/60/60/24;
Разницу между результатами mkdate двух дат, нужно преобразовать в минуты разделив на 60, потом преобразовать минуты в часы, разделив еще на 60 и в конце концов просто разделить часы на 24 при этом получив количество дней!

Но в рабочем варианте почему-то приходится делить на 2
Тоесть выглядит он вот так:

$difference=$difference/60/60/24/2;


Вот одной вещи я НЕ понимаю, ЗАЧЕМ делить на 2 или почему результат моих вычеслений в два раза больше?


Последний раз редактировалось (- Goo -) [sublimit]; 14.04.2004 в 09:13.
Старый 14.04.2004, 11:03
juggy вне форума Посмотреть профиль Отправить личное сообщение для juggy Посетить домашнюю страницу juggy Найти все сообщения от juggy
  № 2  
juggy
 
Аватар для juggy

Регистрация: Feb 2001
Адрес: LJ/~aleshru
Сообщений: 4,777
Отправить сообщение для juggy с помощью ICQ Отправить сообщение для juggy с помощью MSN Отправить сообщение для juggy с помощью Yahoo Отправить сообщение для juggy с помощью Skype™
Это лучше всего делать с Mysql. Одной строчкой.
Оно всё посчитает:-)
__________________
Что за дурь? 50 символов в подписи!?

Старый 14.04.2004, 11:37
Constantine вне форума Посмотреть профиль Отправить личное сообщение для Constantine Посетить домашнюю страницу Constantine Найти все сообщения от Constantine
  № 3  
Constantine
 
Аватар для Constantine

Регистрация: Jun 2000
Адрес: $_SERVER['REMOTE_ADDR']
Сообщений: 854
На самом деле, это даже не в 2 раза больше, ты просто считаешь вообще непонятно что
Вот это работает:

PHP код:
$premiere=mktime(0,0,0,5,19,2005);
$today=mktime(0,0,0,date("m"),date("d"),date("Y"));
$difference=round(($premiere-$today)/60/60/24);
print(
$difference); 
А дело в том, что...
Цитата:
int mktime ( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]] )
Warning: Note the strange order of arguments, which differs from the order of arguments in a regular UNIX mktime() call and which does not lend itself well to leaving out parameters from right to left (see below). It is a common error to mix these values up in a script.
Другими словами, сначала месяц, потом день ...

Старый 14.04.2004, 11:39
ninja_127 вне форума Посмотреть профиль Отправить личное сообщение для ninja_127 Посетить домашнюю страницу ninja_127 Найти все сообщения от ninja_127
  № 4  
ninja_127
 
Аватар для ninja_127

Регистрация: Jan 2004
Адрес: Москва
Сообщений: 700
Отправить сообщение для ninja_127 с помощью ICQ
Цитата:
Оригинал написал(а) juggy
Это лучше всего делать с Mysql. Одной строчкой.
Оно всё посчитает:-)
точняга, мэн!

Создать новую тему   Часовой пояс GMT +4, время: 14:35.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 14:35.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.