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 :: Если [date] то

 PHP.SU

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


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

> Без описания
thunder
Отправлено: 27 Мая, 2013 - 19:57:31
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Май 2013  


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




Здравствуйте! Я новичек в php, при этом новичек с большой буквы. Нужно реализовать следующее, но, к сожалению, пока не хватает знаний, а нужно это срочно.

Итак:

Если, сегодня Понедельник, то надпись: "сегодня день Сурка!" и выводится картинка 1, картинка 2

Если, сегодня Вторник, то надпись: "сегодня день Мира!" и выводится картинка 3, картинка 4

... Если, сегодня Среда и т.д.

Моих знаний пока хватает на следующее:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. if (date('D', $timestamp) === 'Mon')
  4.   {
  5.   echo <style type="text/css"> img { padding-top:5px;</style><img src="site.ru/img/1.jpg" />;
  6.   }
  7.  ?>
  8.  


Хорошо

Вобщем, буду рад вашему содействию, хочется грамотно всё сделать. Буду признателен! Улыбка

Спасибо!

(Отредактировано автором: 27 Мая, 2013 - 19:58:36)

 
 Top
stas0
Отправлено: 27 Мая, 2013 - 20:08:20
Post Id



Частый гость


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


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

[+][+][+]


PHP:
скопировать код в буфер обмена
  1.  
  2. if (date('D', $timestamp) == 'Mon')
  3.   echo '<img src="hello_world!.gif">';
  4.  
 
 Top
DelphinPRO
Отправлено: 27 Мая, 2013 - 20:08:41
Post Id



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


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


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




ну а чем вас это не устраивает?
не нравятся ифы, можете в свитч засунуть

PHP:
скопировать код в буфер обмена
  1. switch (date('w')) {
  2.   case 0:
  3.     echo 'Воскресенье';
  4.     // ... some code
  5.     break;
  6.  
  7.   case 1:
  8.     echo 'Понедельник';
  9.     // ... some code
  10.     break;
  11.  
  12.   ....
  13. }


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
stas0
Отправлено: 27 Мая, 2013 - 20:08:54
Post Id



Частый гость


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


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

[+][+][+]



не обязательно
 
 Top
IllusionMH
Отправлено: 27 Мая, 2013 - 20:08:58
Post Id



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


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


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




thunder, загляните в официальный мануал по конструкции switch - замена множеству однообразных if
если строки короткие, то можно составить массив строк
Спойлер (Отобразить)

upd. либо можно вместо строковых индексов массива, использовать числовые и date('w') (главное учесть, что 0 - Вс)
DelphinPRO, опередил Улыбка

(Отредактировано автором: 27 Мая, 2013 - 20:13:09)

 
 Top
stas0
Отправлено: 27 Мая, 2013 - 20:11:27
Post Id



Частый гость


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


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

[+][+][+]


DelphinPRO спасибо.
Что-то с головы выпало.
Конструкция switch даже лучше if-else(смотря какая ситуация).
Если вас устраивает писать много скобок, то вам никто не мешает Подмигивание

(Отредактировано автором: 27 Мая, 2013 - 20:15:04)

 
 Top
thunder
Отправлено: 27 Мая, 2013 - 21:04:03
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Май 2013  


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




Спасибо всем!

Но, что-то ругается отладчик на оба скрипта

Parse error: syntax error, unexpected T_STRING

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. switch (date('w')) {
  3.   case 0:
  4.     echo 'Воскресенье';
  5.     '<img src="<?PHP bloginfo('template_directory'); ?>/images/1.jpg" />';
  6.     break;
  7.  
  8.   case 1:
  9.     echo 'Понедельник';
  10.     '<img src="<?PHP bloginfo('template_directory'); ?>/images/2.jpg" />';
  11.     break;
  12.  
  13.   ....
  14. }
  15. ?>
  16.  
  17.  
  18.  
  19. <?PHP
  20.         if (date('D', $timestamp) == 'Mon')
  21.         echo '<img src="<?PHP bloginfo('template_directory'); ?>/images/1.jpg" />';
  22.         die();
  23. ?>


Видно где-то забыл поставить скобку или ; но не пойму где.

(Отредактировано автором: 27 Мая, 2013 - 21:04:24)

 
 Top
IllusionMH
Отправлено: 27 Мая, 2013 - 21:06:45
Post Id



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


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


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




thunder, либо лишняя ; в строках

и писать все как одну строку
PHP:
скопировать код в буфер обмена
  1. echo 'Воскресенье
  2. <img src="'. bloginfo('template_directory') . '/images/1.jpg" />';


upd. только сейчас заметил что изначально некорректная запись
Я так понимаю это попытка допилить шаблоны вордпресса, так вот - внимательнее изучите синтаксис языка и примеры в кодексе, т.е. как вы написали вообще писать нельзя.

(Отредактировано автором: 27 Мая, 2013 - 21:11:09)

 
 Top
thunder
Отправлено: 27 Мая, 2013 - 21:12:15
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Май 2013  


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




Спасибо, но всё= Parse error: syntax error, unexpected T_STRING, expecting ',' or ';'
(Добавление)
Хм, я читал, дата например замечательно выводится стандартными средствами.



Тут дело в том, что мы как-бы не прибегаем к ресурсам и функциям самого движка, а выводим в html данные по средствам php.
 
 Top
DelphinPRO
Отправлено: 27 Мая, 2013 - 21:16:18
Post Id



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


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


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




thunder пишет:
Спасибо, но всё=

вы показывайте что у вас получилось.
у IllusionMH корректный код.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
thunder
Отправлено: 27 Мая, 2013 - 21:33:55
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Май 2013  


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




PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. switch (date('w')) {
  3.   case 0:
  4.     echo 'Воскресенье
  5.         <img src="'. bloginfo('template_directory') . '/images/1.jpg" />';
  6.     break;
  7.  
  8.   case 1:
  9.     echo 'Воскресенье
  10.         <img src="'. bloginfo('template_directory') . '/images/1.jpg" />';
  11.     break;
  12.  
  13.   ....
  14. }
  15. ?>


UPD

Переделал вот так:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. switch(date('W')) {
  3. case 0:
  4. echo 'Понедельник <img src="'. bloginfo('template_directory') . '/img/1.jpg" />'; ?>
  5. <?PHP break;
  6. case 1:
  7. echo 'Вторник <img src="'. bloginfo('template_directory') . '/img/2.jpg" />'; ?>
  8. <?PHP break;
  9. } ?>


Теперь ошибки нет, но ничего не выводится

(Отредактировано автором: 27 Мая, 2013 - 23:23:57)

 
 Top
IllusionMH
Отправлено: 28 Мая, 2013 - 01:09:38
Post Id



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


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


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




thunder, внимательно с регистром буквы, это решает. Могли бы посмотреть через var_dump(date('W')) что у вас в условии будет сравниваться - номер явно больше 6

внимательнее мой комментарий(и документацию) 0 = Sun = Вс, первый вариант был корректный, зачем меняли - непонятно.
?> и <?PHP убрать, между ними нет html разметки.
первый вариант 100% рабочий, если нигде до этого не намудрили

(Отредактировано автором: 28 Мая, 2013 - 01:23:04)

 
 Top
thunder
Отправлено: 28 Мая, 2013 - 11:47:28
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Май 2013  


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




Спасибо!

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

PHP:
скопировать код в буфер обмена
  1. <?PHP switch(date('N')) {
  2. case 1: ?>
  3. <div class="monday"> Понедельник</div>
  4. <?PHP break;
  5. case 2: ?>
  6. <div class="tuesday"> Вторник <?PHP echo '<img src="'. bloginfo('template_directory') . '/img/1.jpg" />'; ?> </div>
  7. <?PHP break;
  8. case 3: ?>
  9. <div class="wednesday"> Среда </div>
  10. <?PHP break;
  11. case 4: ?>
  12. <div class="thursday"> Четверг</div>
  13. <?PHP break;
  14. case 5: ?>
  15. <div class="friday"> Пятница</div>
  16. <?PHP break;
  17. case 6: ?>
  18. <div class="saturday"> Суббота </div>
  19. <?PHP break;
  20. case 7: ?>
  21. <div class="sunday"> Воскресенье </div>
  22. <?PHP break;
  23. default:
  24. } ?>


По порядку:

1. date('N')

В чем существенное отличие от вашего варианта date('w')? Работает date('N') правильно и дни недели выводит правильно.

2. Обязательно ли в конце ставить default:?

3. В коде страницы следующее:

CODE (html):
скопировать код в буфер обмена
  1. <div class="tuesday">
  2. Вторник http://site.ru/wp-content/themes/site_theme
  3. <img src="/img/1.jpg">
  4.  


А должно быть так:

CODE (html):
скопировать код в буфер обмена
  1. <div class="tuesday">
  2. Вторник <img src="http://site.ru/wp-content/themes/site_theme/img/1.jpg">
  3.  


То есть как бы ваш вариант разделил на две части урл картинки. А так всё работает, спасибо!

(Отредактировано автором: 28 Мая, 2013 - 11:52:39)

 
 Top
DelphinPRO
Отправлено: 28 Мая, 2013 - 12:27:52
Post Id



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


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


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




thunder пишет:
В чем существенное отличие от вашего варианта date('w')? Работает date('N')

привычка...

thunder пишет:
В коде страницы следующее:

а это вордпресс виноват. или вы, потому что не удосужились прочесть документацию. функция bloginfo выводит данные, а не возвращает их.
в конструкции echo '<img src="'. bloginfo('template_directory')
сначала выполняется функция, потом эха. вот и получается часть пути выводится раньше.

поэтому в вашем случае лучше написать так

PHP:
скопировать код в буфер обмена
  1. switch(date('N')) {
  2.     case 1:
  3.         echo '<div class="monday"> Понедельник</div>';
  4.         break;
  5.  
  6.     case 2:
  7.         echo '<div class="tuesday"> Вторник
  8.            <img src="'. get_bloginfo('template_directory') . '/img/1.jpg" />
  9.            </div>';
  10.         break;
  11.  
  12. ...

согласитеь - глазу приятнее, и легче читать

(Отредактировано автором: 28 Мая, 2013 - 12:30:12)



-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
IllusionMH
Отправлено: 28 Мая, 2013 - 12:29:38
Post Id



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


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


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




thunder,
thunder пишет:
1. date('N')

В чем существенное отличие от вашего варианта date('w')? Работает date('N') правильно и дни недели выводит правильно.

1. Я этот вариант вообще не упоминал, и не говорил что он неправильный. В вашем посте - W
А пути посмотреть на странице не судьба? Или посмотреть описание функции bloginfo?
CODE (htmlphp):
скопировать код в буфер обмена
  1. <div class="tuesday"> Вторник  <img src="<?php bloginfo('template_directory'); ?>/img/1.jpg" /></div>

(Добавление)
ай. Пока отвлекся написать багрепорт к Opera 15 Next уже и DelphinPRO подоспел с ответом.

(Отредактировано автором: 28 Мая, 2013 - 12:32:26)

 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB