Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Орифметика с датой

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
pantela
Отправлено: 22 Августа, 2010 - 14:13:33
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 765
Дата рег-ции: Авг. 2010  


Помог: 1 раз(а)




В базе есть поле date_end

Мне надо подсчетать сколько дней осталось. т.е. с поля date_end отнимаю текушую дату

PHP:
скопировать код в буфер обмена
  1.  
  2. $today=(date('Y-m-d')); //Текушая дата
  3. $adsDetails->date_end_std //Дата в поле
  4.  
  5. $deadline=($adsDetails->date_end_std)-(date('Y-m-d'));
  6.  
  7. echo "$deadline";
  8.  


но итог=0. Помогите доделать Растерялся

Мне что надо по отдельности всё отнимать т.е. день отдельно, месяц отдельно, год отдельно и это всё присвоить к одной переменой Однако

спс.Ув.
 
 Top
Мелкий Супермодератор
Отправлено: 22 Августа, 2010 - 14:17:05
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




pantela пишет:
Мне что надо по отдельности всё отнимать т.е. день отдельно, месяц отдельно, год отдельно и это всё присвоить к одной переменой

Да. Но удобнее будет перевести к времени UNIX и работать с ним. См. функции времени и даты.
Или, возложить эту задачу на СУБД, она тоже умеет со временем работать.


-----
PostgreSQL DBA
 
 Top
SAD
Отправлено: 22 Августа, 2010 - 14:17:47
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




переводите все в секунды с помощью mktime - находите разницу, а потом думаю не сложно все вернуть в формат из секунд в любой удобны простой арифметикой
 
 Top
Champion Супермодератор
Отправлено: 22 Августа, 2010 - 14:17:57
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




 
 Top
Мелкий Супермодератор
Отправлено: 22 Августа, 2010 - 14:25:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




SAD пишет:
потом думаю не сложно все вернуть в формат из секунд в любой удобны простой арифметикой

Зачем громоздить велосипед арифметики, если он уже сделан в функции date вторым аргументом?


-----
PostgreSQL DBA
 
 Top
pantela
Отправлено: 22 Августа, 2010 - 14:43:27
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 765
Дата рег-ции: Авг. 2010  


Помог: 1 раз(а)




спс всем но вот до реализации не додумался как.
У кого есть время может по быстрому отпишет готовый код. Закатив глазки
спс. и сорри
 
 Top
movEAX
Отправлено: 22 Августа, 2010 - 15:12:24
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009  


Помог: 16 раз(а)




PHP:
скопировать код в буфер обмена
  1. $remainDays = strtotime( $adsDetails->date_end_std ) - time();
  2. echo $remainDays / 86400; // 86400 - столько секунд в дне


А в php >= 5.3 можно так ( правда я не проверял на работоспособность ):
PHP:
скопировать код в буфер обмена
  1. $d = new DateTime( '2010-04-17 00:00:00' );
  2. $diff = $d->diff( new DateTime );
  3. echo $diff->getTimestamp() / 86400;

(Отредактировано автором: 22 Августа, 2010 - 15:18:14)



-----
армия.. самое убогое место
 
 Top
pantela
Отправлено: 22 Августа, 2010 - 20:26:09
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 765
Дата рег-ции: Авг. 2010  


Помог: 1 раз(а)




Спасибо. Подмигивание
Малось по другому сделал.
 
 Top
JustUserR
Отправлено: 23 Августа, 2010 - 14:14:15
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




pantela пишет:
Мне что надо по отдельности всё отнимать т.е. день отдельно, месяц отдельно, год отдельно и это всё присвоить к одной переменой
При работе с переменными содержащими информацию в виде даты/времени в одном их тесктовых форматов - удобно произвести их предварительную конвертацию во временную метку timespamp и работать далее как с обычными числами используя арифметические операции - и уже полученный результат можно привести обратно в текстовый вид удобный для восприятия пользователем - для выполнения двухстороннего преобразования используются функции strtotime и date соответственно


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB