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
Форумы портала PHP.SU :: Версия для печати :: Как такое сделать?
Форумы портала PHP.SU » PHP » Программирование на PHP » Как такое сделать?

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

1. dextix - 26 Февраля, 2014 - 21:21:53 - перейти к сообщению
Если в переменной $res['time']; содержится время в формате timestamp меньше одной недели от текущей даты - выводить один текст,
если больше - выводить другой текст.
Заранее благодарю за ответ.
2. Vinyl - 26 Февраля, 2014 - 21:33:15 - перейти к сообщению
dextix пишет:
Если в переменной $res['time']; содержится время в формате timestamp меньше одной недели от текущей даты - выводить один текст,
если больше - выводить другой текст.
Заранее благодарю за ответ.


Вы серьезно?

От текущего таймштампа отнимаете тот, что в массиве, получаете число, а затем магия:

PHP:
скопировать код в буфер обмена
  1. если(число > недели)
  2. {
  3.   один текст
  4. }
  5. если нет
  6. {
  7.   другой текст
  8. }


Или Вам открытым кодом написать?
3. dextix - 26 Февраля, 2014 - 21:54:36 - перейти к сообщению
Не совсем понимаю как сделать сравнение если время в формате timestamp меньше одной недели от текущей даты.. Можете это на примере показать?
4. Vinyl - 26 Февраля, 2014 - 22:20:08 - перейти к сообщению
dextix, может я не так понял, время в POSIX? Если да, то ИМХО, с ним работать намного легче, чем с любым другим. Получаете текущее время ф-ей time(), затем вычитаете из него Ваше $res['time'], а дальше элементарная математика. Можно тупо сравнивать с 604800 (неделя). Если нужно поточнее, то математики будет чуть больше, но тоже элементарно все. Если же у Вас время в ином формате, то перевести в Unixtime можно ф-ей strtotime()
5. dextix - 26 Февраля, 2014 - 22:54:29 - перейти к сообщению
Время хранится в формате 2014-02-26 22:54:34 .

Вообщем сделал так:

PHP:
скопировать код в буфер обмена
  1. $date_today = date("Y-m-d");
  2. $date = date("Y-m-d" , strtotime($res['time']));
  3. $result=abs(floor((strtotime($date)-strtotime($date_today))/(3600*24)));
  4. if($result < 7) $result = 'Тут такой текст';
  5. else
  6. $result = 'А тут такой вот текст';
  7. echo $result;
6. Vinyl - 27 Февраля, 2014 - 06:24:09 - перейти к сообщению
А зачем лишние ресурсы кушать? Замените

PHP:
скопировать код в буфер обмена
  1. $date_today = date("Y-m-d");
  2. ...
  3. $result=abs(floor((strtotime($date)-strtotime($date_today))/(3600*24)));


на

PHP:
скопировать код в буфер обмена
  1. $result=abs(floor((strtotime($date)-time())/(3600*24)));
7. Ch_chov - 27 Февраля, 2014 - 07:47:53 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. if (strtotime($res['time']) < strtotime("-1 week")) {
  2.   echo 'outdated';
  3. }
  4. else {
  5.   echo 'actual';
  6. }
8. Vinyl - 27 Февраля, 2014 - 07:53:35 - перейти к сообщению
Ch_chov, а я и забыл про -1 week ... ))
9. dextix - 28 Февраля, 2014 - 13:56:03 - перейти к сообщению
Всем спасибо!

 

Powered by ExBB FM 1.0 RC1